gpt4 book ai didi

c++ - 链接器在 Eclipse/JNI/ANT 中找不到库

转载 作者:行者123 更新时间:2023-11-28 06:35:03 25 4
gpt4 key购买 nike

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

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

  1. 在链接器选项中添加了正确的库路径,
  2. 在链接器包含列表中添加了对 libm 的引用,
  3. -lm 添加到完整的编译选项列表中,
  4. LD_LIBRARY_PATH 设置为指向库的位置,
  5. 将库复制到当前目录。

我做错了什么/有没有人有过在 Eclipse 中正确链接库的经验?有什么建议吗?

最佳答案

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

在对 log10 进行任何调用之前,尝试在 java 环境中加载您的 .so 库。

System.LoadLibrary("m");

请注意我是如何省略“lib”和“.so”的。

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

您能否发布您收到的确切消息以及收到消息的时间?

关于c++ - 链接器在 Eclipse/JNI/ANT 中找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com