Предупреждение PHP: Запуск PHP: Неверная библиотека (возможно, не библиотека PHP) - PullRequest
8 голосов
/ 02 сентября 2011

В прошлом я создавал разделяемую библиотеку, и теперь я хотел бы использовать ее внутри расширения php.Возможно ли это сделать?Как я видел в config.m4 файле, PHP_NEW_EXTENSION() запрашивает .cc.Проблема в том, что я не хочу показывать свой код.Я просто хочу использовать заголовок и разделяемую библиотеку, которую я создал в c под Ubuntu. Для расширения 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..

1 Ответ

16 голосов
/ 14 сентября 2011
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
...