我们使用 PHP 扩展代码(仅用 C++ 编写)将 PHP 代码与 C++ 代码链接起来......所有这些都在 32 位操作系统中正常工作。
现在我们更改了许多软件的版本,因为操作系统版本已更改为 64 位。我们将之前使用 64 位 gcc 运行良好的 C++ 代码编译为 32 位“.so”文件,它显示了许多错误,我们清除了所有这些错误,最终编译成功。但在与 PHP 链接期间,它显示:
undefined symbol: _ZTV5Temps" error
最佳答案
使用c++filt
来解析名称:
$ c++filt -n _ZTV5Temps
vtable for Temps
我的猜测(鉴于缺乏上下文)是您在尚未重新编译/重新链接的模块中引用了 Temps
(类)。
关于linux - Linux 中因版本变更而出现的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620885/