过去我确实创建了一个共享库,现在我想在php扩展中使用它。有可能吗?正如我在config.m4
文件PHP_NEW_EXTENSION()
中看到的那样,要求.cc。问题是我不想暴露我的代码。我只想使用标题和共享库我在ubuntu下用c表示。对于php扩展,我创建了一个:config.m4, php_c.h and php_c.cc.
请帮忙! THX APPRECIATE 我确实输入了配置文件:
libs=mylib.so;
PHP_ADD_LIBRARY_WITH_PATH(libs, $EXTERNAL_LIB_DIR, ?? what to add here);
我获得以下内容:
PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) '/home/foder/mylib.so'in Unknown on line 0
php:符号查找错误:
/usr/php5/20090626+lfs/vehicles.so: undefined symbol: _ZN3CarC1Ei (where vehicles.so) is a php so created with: phpize, ./configure --enable-vehicle make..
答案 0 :(得分:16)
PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) '/home/foder/mylib.so'in Unknown on line 0
此消息表示“.so”中没有“get_module”功能。
确保PHP扩展源包含以下行:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
和
#ifdef COMPILE_DL_MYLIB
ZEND_GET_MODULE(mylib)
#endif