如何解决错误:java:符号查找错误

时间:2020-07-01 13:42:26

标签: java symbols lookup undefined-symbol

我正在尝试在x86_64 GNU / Linux中运行由FCC开发的名为SATFC的软件。该软件调用了一个名为satenstein的sat-solver,当它出现时,我收到以下错误消息:

java:符号查找错误:/tmp/libjnasatenstein_15758433517075266088.so:未定义的符号:AddToList1

**请注意,我已经按照指示的软件手册在系统中设置了satenstein。

感谢您的帮助!

***编辑

我运行:nm -D libjnasatenstein_15758433517075266088.so 检查该库,它显示有关该符号的以下内容:

------------ U AddToList1

2 个答案:

答案 0 :(得分:1)

这可能为时已晚,但我正在使用同一个 SATFC 库并面临同样的问题。经过大量挖掘,我能够解决它。我认为 SAtenstein 构建代码存在问题,我必须对其进行调整才能使其正常工作。导航到 SATenstein 源目录(如果您在 SATFC 项目中使用源,则它应该位于 satfc/src/dist/satenstein/ubcsat_stein)。在里面,编辑 CMakeLists.txt 文件:将标志 -std=gnu89 添加到 CMAKE_C_FLAGS。重新编译SATenstein 项目。它应该可以工作。

答案 1 :(得分:0)

最有可能与LD_LIBRARY_PATH env变量未设置为包括satenstein-libs相同,将其附加到LD_LIBRARY_PATH

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<path_to_satenstein_lib>