我按照以下提示构建了hello_world php模块:https://zando.io/post/hello-world-php-7-extension/
我成功地在modules /
下建立了hello.so但是当我尝试加载此hello.so时,它失败了。
(将extension=hello.so
添加到php.ini并将.so文件放入extension_dir
)
var_dump(extension_loaded('hello'));
var_dump(hello_world());
输出:
bool(false)
Fatal error: Uncaught Error: Call to undefined function hello_world() in /var/www/app/test.php(2) : eval()'d code:1 Stack trace: #0 /var/www/app/test.php(2): eval() #1 {main} thrown in /var/www/app/test.php(2) : eval()'d code on line 1
但是当我尝试加载朋友的hello_world so文件时,它可以正常工作!
(相同的源代码,相同的构建过程...)
我真的不知道为什么...
答案 0 :(得分:0)
我已经解决了这个问题。
因为我使用了错误的phpize
和php-config
版本。
phpinfo()
显示PHPAPI
是20170718
但是我原来的phpize显示20180731
所以我重新安装了php7.2-dev
。
然后运行phpize7.2
,然后运行./configure --with-php-config=/usr/bin/php-config7.2
来配置设置。
它有效!