【问题标题】:error /usr/bin/ld: cannot find -lmylibrary错误 /usr/bin/ld: 找不到 -lmylibrary
【发布时间】:2010-11-05 05:58:49
【问题描述】:

嗨,我在 eclipse 和 netbeans 中都有这个错误,当我将 mydynamiclib.so 文件添加到 eclipse 或 netbeans 并尝试构建时,我得到了这个错误 netbeans:

collect2: ld 返回 1 个退出状态

make[2]: * [dist/Debug/GNU-Linux-x86/myapp] 错误 1

/usr/bin/ld: 找不到 -lmydynamiclib

我正在使用最新版本的 (ubuntu 10.10 ,netbeans, eclipse)

【问题讨论】:

  • 是“mylibrary”还是“mydynamiclib”?
  • 抱歉编辑了,是mydynamiclib

标签: linux eclipse netbeans shared-libraries


【解决方案1】:

需要 libmydynamiclib.a 文件以及 .so 文件,您还应该告诉 ld 或 gcc 在哪里可以找到它。

例如gcc -o myapp -L/path/to/lib -lmydynamiclib

libmydynamiclib.so 位于 /path/to/lib 中的位置。

否则,不要链接库,而是使用 dlopen() 动态加载它。请参阅 dlopen() 联机帮助页。

【讨论】:

    【解决方案2】:

    链接器在其搜索路径中找不到您的共享库。如果您将共享库所在的目录添加到 LD_LIBRARY_PATH 环境变量,链接器应该会找到它并能够链接到它。

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 1970-01-01
      • 2013-01-03
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2014-08-17
      • 1970-01-01
      相关资源
      最近更新 更多