我正在学习如何使用 SWIG,并且正在为 C 库编写一个 php 包装器。扩展成功编译,但是当我尝试调用该函数时出现此错误:
php:符号查找错误:/usr/lib/php5/20090626+lfs/fact.so:未定义符号:事实
我正在学习如何使用 SWIG,并且正在为 C 库编写一个 php 包装器。扩展成功编译,但是当我尝试调用该函数时出现此错误:
php:符号查找错误:/usr/lib/php5/20090626+lfs/fact.so:未定义符号:事实
您的问题可能是由于模块名称(请参阅%module或在命令行上传递)与您正在生成的 .so 文件的名称不匹配。
PHP,或任何接受可加载二进制模块的系统,将对它试图加载的库的入口点的名称做出某些假设。PHP 似乎假设文件名 (fact.so) 将包含一个名为“fact”的函数。
当您运行 SWIG 时,将模块名称显式设置为“fact”可能会解决您的问题。如果没有,发布生成的 SWIG 源文件可以帮助我们调试您的问题。