我正在尝试在Linux下构建一个涉及JNI和ANT的大型Java / c ++项目。其中一个源c ++文件调用log10()
函数进行数学计算。该项目编译良好,但在链接时失败,它抱怨它无法找到链接libm.so
所需的log10()
库。
我的问题是,即使执行了以下步骤,我也无法正确地告诉Eclipse链接该文件:
libm
的引用,-lm
添加到完整编译选项列表LD_LIBRARY_PATH
设置为指向库的位置我做错了什么/有没有人在Eclipse中正确链接libs有这样的经历?有什么建议吗?
答案 0 :(得分:1)
这有点令人困惑。 如果您未能在Java环境中的运行时找到您的库:
在调用log10之前,尝试在java环境中加载.so库。
System.LoadLibrary("m");
注意我是如何离开“lib”和“.so”的。
但是,您抱怨C ++中的链接器问题,您无法链接到动态文件。您只能链接到静态库或静态导出库(因此您需要在编译时链接到libm.a文件,然后您的程序将在运行时需要libm.so)。
您是否可以发布您收到的确切消息以及何时收到消息?