Попробуйте встроить мой C-код в PHP-скрипт

Я учусь использовать SWIG и пишу php-оболочку для библиотеки C. Расширение успешно компилируется, но когда я пытаюсь вызвать функцию, я получаю эту ошибку:

php: ошибка поиска символа: /usr/lib/php5/20090626+lfs/fact.so: неопределенный символ: факт

1 ответ

Возможно, ваша проблема связана с несоответствием имени модуля (см. % Module или переданного в командной строке) и имени создаваемого вами файла.so.

PHP или любая система, которая принимает загружаемые двоичные модули, собирается сделать определенные предположения относительно имени точки входа в библиотеку, которую она пытается загрузить. PHP, похоже, предполагает, что имя файла (fact.so) будет содержать функцию с именем "fact".

Когда вы запускаете SWIG, явное указание имени модуля "факт", вероятно, решит вашу проблему. В противном случае размещение сгенерированного исходного файла SWIG может помочь нам отладить вашу проблему.

Другие вопросы по тегам