3

我制作了 JNI 函数并将它们与 c++ 动态库成功链接。我让它们都工作得很好,但是我遇到了一个函数的问题,我在用于从文件读取数据的 c++ 中使用的 FileHandle 类中遇到符号查找错误。知道它正在处理普通的 c++ 项目,但不在 DLL 中。

/usr/lib/jvm/jdk1.7.0/bin/java:符号查找错误:/home/.../NetBeansProjects/TRIOGUI/dist/libNativeAdd.so:未定义符号:_ZN5Gdsii9GdsParserC1EPKcN7SoftJin10FileHandle8FileTypeEN5boost8functionIFvS2_ESaIvEEE Java 结果:127

有人可以帮我吗?:)

4

2 回答 2

3

我发现你的符号非常可疑。不正确的修饰。你是如何得到的?它是从某个地方复制和粘贴吗?你有没有尝试破解它?10FileHandleF8ileType应该是10FileHandle8FileType。然后它变成一个有效的符号Gdsii::GdsParser::GdsParser(char const*, SoftJin::FileHandle::FileType, boost::function >)

于 2012-07-03T20:49:17.757 回答
1

我找到了问题,谢谢大家。我使用的库有一个库文件“somefile.a”,我在库文件夹中缺少该文件。我得到了库,将其包含在项目中,并且运行良好:)

再次感谢大家的帮助:)

于 2012-07-07T09:12:37.197 回答