2011-09-02 133 views
8

在过去,我创建了一个共享库,现在我想在PHP扩展中使用它。有可能这样做吗?正如我在config.m4文件PHP_NEW_EXTENSION()中所见,要求.cc。问题是我不想公开我的代码。我只想使用头文件和共享库,我已经在ubuntu下的c中加入。对于php的扩展,我确实创建了一个:config.m4, php_c.h and php_c.cc.PHP警告:PHP启动:无效的库(可能不是PHP库)

请帮忙! THX欣赏 我没有把在配置文件中这样的:

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.. 
+1

你不能只是采取一些随机的。所以,把它变成一个PHP扩展与配置的一对夫妇行。涉及相当多的工作:http://devzone.zend.com/article/1021 –

回答

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 
相关问题