Eclipse CDT 自动包含共享库

Posted

技术标签:

【中文标题】Eclipse CDT 自动包含共享库【英文标题】:Eclipse CDT Auto Include Shared Libraries 【发布时间】:2011-03-16 15:40:17 【问题描述】:

我在 Eclipse 中工作:Helios Service Release 1 using Eclipse CDT compile using g++

我刚刚开始尝试在我的项目中使用共享库,但遇到了一个小问题。我有三个项目 A、B 和 C。A 和 B 都是共享库,C 是可执行文件。

在 Eclipse 下,我设法从 C 中引用 A 和 B,C 编译并正确运行,但是当我尝试在 Eclipse 之外手动运行生成的 C 程序时,出现以下错误:

加载共享库时出错:libA.so:无法打开共享对象文件:没有这样的文件或目录

我尝试将 A.so B.so 和 C 移动到同一个文件夹并运行 C,但我得到了同样的错误。

我能否让 Eclipse 将所有文件都放在同一个位置构建我的项目,并且当我将它们移动到新位置时它们仍然运行?

【问题讨论】:

我似乎有完全相同的问题,我在链接器中有 libA,它也列在路径和符号 --> 库路径下。 libA 的位置是否也需要在 LD_LIBRARY_PATH 中?我能够在 Eclipse 之外编译和运行(来自 exterm) @Anu 我发现这个博客对dirkraffel.com/2008/06/27/… 在 Eclipse 中的链接非常有帮助,但它并没有真正解决我在导出时遇到的问题。 【参考方案1】:

以 root 身份运行 ldconfig 以更新缓存 - 如果仍然没有帮助,您需要添加文件 ld.so.conf 的路径(只需在自己的行中输入)或者更好的是,添加进入目录ld.so.conf.d中的新文件(更容易删除)。

【讨论】:

【参考方案2】:

您只需设置LD_LIBRARY_PATH 以包含共享库所在的文件夹。 像这样:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/lib/

【讨论】:

以上是关于Eclipse CDT 自动包含共享库的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse:JVM 共享库不包含 JNI_CreateJavaVM 符号

Eclipse + CDT:如何批量构建多个构建配置

静态库,链接到共享库

Eclipse,构建共享库的最佳方式?

eclipse项目更换svn共享库

Eclipse - 无法加载 JNI 共享库