我正在尝试创建一个静态库,以便在我的PHP扩展中使用.为此,我正在.c使用gcc -c file.c -o file.o和获取.o文件来编译我的文件.然后我用ar rcs lib.a *.o它将所有编译的对象存档到一个.a文件中.
执行此操作后,我.a在编译我的PHP扩展时引用此文件,但是我收到以下错误:
*** Warning: Linking the shared library <extension>.la against the
*** static library lib.a is not portable!
Run Code Online (Sandbox Code Playgroud)
如果我使用.o文件而不是.a文件,我得到:
*** Warning: Linking the shared library <extension>.la against the non-libtool
*** objects file1.o file2.o is not portable!
Run Code Online (Sandbox Code Playgroud)
我做错了什么,这样做的正确方法是什么?
请有人帮我在windows xp上安装gearman php扩展.我在我的系统上安装了xampp 1.7.7,我在我的系统上安装了Cygwin,libevent-1.4.14b-stable和gearmand.请让我知道安装gearman-1.0.2 php扩展所需的更多内容.当我在cygwin终端上运行gearman-1.0.2时发现命令未找到错误.
我正在尝试编写 PHP 的 C 扩展。这是我的config.m4。几乎直接从 helloworld 中出来
PHP_ARG_ENABLE(my_ext, whether to enable my_ext support,
[ --enable-my-ext Enable My Ext support])
if test "$PHP_MY_EXT" = "yes"; then
AC_DEFINE(HAVE_MY_EXT, 1, [Whether you have my ext])
PHP_NEW_EXTENSION(my_ext, my_ext.c, $ext_shared)
fi
Run Code Online (Sandbox Code Playgroud)
当我运行 phpize 和 ./configure 时,它会生成一个可以工作的 Makefile。 到目前为止看起来不错。
现在,如果我向 PHP_NEW_EXTENSION 添加额外的源文件,事情就会崩溃。根据此处和此处,调用应如下所示:
PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
Run Code Online (Sandbox Code Playgroud)
完整语法:
PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]])
Run Code Online (Sandbox Code Playgroud)
好的,所以我将额外的源文件 (logging.c) 添加到该列表中:
PHP_NEW_EXTENSION(my_ext, my_ext.c, logging.c $ext_shared)
Run Code Online (Sandbox Code Playgroud)
和 phpize/configure生成一个成功运行的 Makefile,但实际上并没有构建任何东西。 (是的,我已经做了 make distclean、phpize --clean 等) …
这是一个纯粹的Bluemix问题!
我已经在本地主机上顺利运行代码但是当我将它迁移到Bluemix时,我的数据库连接失败了.检查日志我发现问题"调用未定义的函数mysqli_init()"HTTP响应500.我发现该扩展已被禁用以使其变小并找到一些有关它的详细信息:Buildpack选项.
不幸的是我尝试过但失败了.也许我误解了解决方案.

任何帮助将不胜感激.
编辑:
bgconfig - > bp-config解决了"未定义的函数错误"
似乎已经添加了一些扩展,但并非全部."致命错误:在第15行的/home/vcap/app/htdocs/db_config.php中找不到类'PDO'"
但是我在options.json中添加了PDO扩展.
我尝试添加一个php.ini覆盖 
但仍然得到同样的错误......
有关信息:db_config.php上的第15行只是:
$db = new PDO('mysql:host=us-cdbr-iron-east-02.cleardb.net;dbname=ad_dae231843a962ca', $username, $password);}
Run Code Online (Sandbox Code Playgroud)
在尝试和捕捉当然.
任何线索?
我在操作系统 10.11 上使用 xampp5.6.15。我按照此说明安装 xDebug。我的“定制安装说明”如下:

在这个指令中,它没有提到将下载的 tgz 文件放在哪里,所以我只是将其保留在文件夹中downloads,运行后phpize,输出如下:
grep: /usr/include/php/main/php.h: 没有这样的文件或目录 grep: /usr/include/php/Zend/zend_modules.h: 没有这样的文件或目录 grep: /usr/include/php/Zend /zend_extensions.h:没有这样的文件或目录 配置:PHP Api 版本:
Zend 模块 Api 编号:
Zend 扩展 Api 编号:
找不到 autoconf。请检查您的 autoconf 安装和 $PHP_AUTOCONF 环境变量。然后,重新运行此脚本。
我想这是因为 xdebug 文件夹不在正确的位置,我尝试将其移动到xamppfiles/和xamppfiles/modules/以及其他一些地方,但没有任何效果。
那么有什么问题吗?我应该将文件夹放在哪里?
在 PHP 项目中,我需要使用DOTNET COM 库,但我看到它被禁用。
我不知道如何启用它,所以我尝试取消注释php.ini文件中 [com] 部分下的以下几行:
com.typelib_file = php_com_dotnet.dll
com.allow_dcom = true
pextension=php_com_dotnet.dll
com.autoregister_typelib = true
com.autoregister_casesensitive = false
com.autoregister_verbose = true
com.code_page=
Run Code Online (Sandbox Code Playgroud)
我仍然收到错误说Class 'COM' not found。
关于该怎么做的任何建议?
谢谢。
如果你看一下这个文档,第一个参数只返回Zend扩展.与PHP("简单")扩展相比,什么是Zend扩展?
刚刚注意到,在CLI上执行时,PHP会引发警告:
php模块已经加载
$ php -v
PHP Warning: Module 'PDO' already loaded in Unknown on line 0
PHP Warning: Module 'calendar' already loaded in Unknown on line 0
PHP Warning: Module 'ctype' already loaded in Unknown on line 0
PHP Warning: Module 'exif' already loaded in Unknown on line 0
PHP Warning: Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning: Module 'ftp' already loaded in Unknown on line 0
PHP Warning: Module 'gettext' already loaded in Unknown on …Run Code Online (Sandbox Code Playgroud) 我在安装php的memcached扩展时遇到了很大的问题.
目前使用:
操作系统:Windows 10 x64
PHP:7.0.1通过XAMPP
Apache:2.4.18(Win32)
我已经成功安装了memcached,C:/memcached正在运行该服务.
但是当尝试添加memcache php扩展时,问题就出现了.我尝试了很多版本,php_memcache.dll而且似乎没有工作.
我确实在php.ini中包含了扩展名 extension=php_memcache.dll
当我运行php -mmemcache没有列出,并在顶部我收到错误:
PHP启动:无法加载动态库'C:\ xampp\php\ext\php_memcache.dll'
- 找不到指定的模块.
当我尝试运行test.php进行内存缓存初始化时,我会重新启动 Class not found exception
这是一个很大的问题,因为我需要它来运行硒测试.
我试过这段代码
var_dump(class_exists('ZipArchive'));
$zip = new ZipArchive();
Run Code Online (Sandbox Code Playgroud)
好吧,输出是这样的.
bool(true)
Fatal error: Class 'MyProject\ProjectBundle\Controller\ZipArchive' not found in \path\to\my\Controller.php on line 83
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题?我安装了
php-pear
php5-dev
libcurl3-openssl-dev
libevent-dev
pecl-http
all i need have been installed
and i have put the extension to my php.ini then restart my apache
Run Code Online (Sandbox Code Playgroud)
但我仍然得到那个错误.然后我尝试了这个
$z = new /ZipArchive();
Run Code Online (Sandbox Code Playgroud)
从这个页面
然后我收到了这个错误:
Parse error: syntax error, unexpected '/' in /path/to/my/symfonyController.php on line 83
Run Code Online (Sandbox Code Playgroud)