链接器在Eclipse / JNI / ANT中找不到lib

时间:2014-11-13 09:46:39

标签: c++ eclipse ant linker java-native-interface

我正在尝试在Linux下构建一个涉及JNI和ANT的大型Java / c ++项目。其中一个源c ++文件调用log10()函数进行数学计算。该项目编译良好,但在链接时失败,它抱怨它无法找到链接libm.so所需的log10()库。

我的问题是,即使执行了以下步骤,我也无法正确地告诉Eclipse链接该文件:

  1. 在链接器选项
  2. 中添加了正确的库路径
  3. 在链接器包含列表中添加了对libm的引用,
  4. -lm添加到完整编译选项列表
  5. LD_LIBRARY_PATH设置为指向库的位置
  6. 将库复制到当前目录。
  7. 我做错了什么/有没有人在Eclipse中正确链接libs有这样的经历?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这有点令人困惑。 如果您未能在Java环境中的运行时找到您的库:

在调用log10之前,尝试在java环境中加载.so库。

System.LoadLibrary("m");

注意我是如何离开“lib”和“.so”的。

但是,您抱怨C ++中的链接器问题,您无法链接到动态文件。您只能链接到静态库或静态导出库(因此您需要在编译时链接到libm.a文件,然后您的程序将在运行时需要libm.so)。

您是否可以发布您收到的确切消息以及何时收到消息?