Inline::CPP/Inline::C-调试代码 我试图在Perl模块中使用一些专有C++代码。
我已经看到,如果在编译时出现问题,只需启用BUILD_noise标志就可以很容易地进行调试Inline::CPP/Inline::C-调试代码 我试图在Perl模块中使用一些专有C++代码。,perl,perl-module,xs,Perl,Perl Module,Xs,我已经看到,如果在编译时出现问题,只需启用BUILD_noise标志就可以很容易地进行调试 在我的例子中,问题出现在运行时…代码C++在单独编译时工作得很好,但是当我把它嵌入到Perl中时,我的代码在运行时崩溃了。 我得到的唯一信息是: perl: symbol lookup error: <my_library>.so: undefined symbol: _ZN12LocationTree4LoadERKSs perl:符号查找错误:.so:未定义的符号:_ZN12Locati
在我的例子中,问题出现在运行时…代码C++在单独编译时工作得很好,但是当我把它嵌入到Perl中时,我的代码在运行时崩溃了。 我得到的唯一信息是:
perl: symbol lookup error: <my_library>.so: undefined symbol: _ZN12LocationTree4LoadERKSs
perl:符号查找错误:.so:未定义的符号:_ZN12LocationTree4LoadERKSs
有没有办法获得更详细的输出?LocationTree4LoadERKSs函数是否有可能过载?你确定图书馆真的包括在内了吗?此外,请尝试将此内容(以及最小的自包含代码示例)发布到内联邮件列表中。perl.org上的内联…也不能保证有一个解决方案,但可以保证使用过内联::CPP的人会看到这个问题。我还应该提到:这是一条perl错误消息,而不是内联::CPP消息。在C++编译时,它无法检测到,因为C++不知道你将调用什么函数。它在Perl编译时无法检测到,因为它不知道XS扩展链接了哪些函数。所以简短的答案是否定的,没有更多的冗长可用于这个消息。我的坏……库不包括:/我已经在C++代码中包括了头文件,但是没有包含库。我使用MYEXTLIB选项将其包括在内。谢谢@DavidO