Попробуйте встроить мой C-код в PHP-скрипт
Я учусь использовать SWIG и пишу php-оболочку для библиотеки C. Расширение успешно компилируется, но когда я пытаюсь вызвать функцию, я получаю эту ошибку:
php: ошибка поиска символа: /usr/lib/php5/20090626+lfs/fact.so: неопределенный символ: факт
1 ответ
Возможно, ваша проблема связана с несоответствием имени модуля (см. % Module или переданного в командной строке) и имени создаваемого вами файла.so.
PHP или любая система, которая принимает загружаемые двоичные модули, собирается сделать определенные предположения относительно имени точки входа в библиотеку, которую она пытается загрузить. PHP, похоже, предполагает, что имя файла (fact.so) будет содержать функцию с именем "fact".
Когда вы запускаете SWIG, явное указание имени модуля "факт", вероятно, решит вашу проблему. В противном случае размещение сгенерированного исходного файла SWIG может помочь нам отладить вашу проблему.