0

我有一个要导入的 C++ 项目,它正在使用 activemq 库。导入项目后,我将环境下的 LD_LIBRARY_PATH 变量设置为指向

/usr/local/include/activemq-cpp-3.4.2

这允许项目查看 activemq 的所有库,并且我可以看到它显示在项目资源管理器的包含文件夹中。当我去构建项目时,我收到大量错误,以引用 /usr/local/include/activemq-cpp-3.4.2 中的包含/对象。有趣的是,二进制文件仍在生成中,但由于找不到库文件,大约有 80 个错误。二进制是如何制作的?另外,我必须对 LD_LIBRARY_PATH 环境变量做什么才能使项目正确包含这些文件?

我试过用

./eclipse -clean

但这似乎没有帮助。欢迎任何想法,并提前感谢您!

编辑:

我在 Redhat 4.X 上使用带有 C++ 版本 4.1.2 的 Eclipse Juno

4

2 回答 2

2

LD_LIBRARY_PATH不用于定位包含目录。它用于通知系统搜索共享库的目录列表:已编译的支持库,而不是用于 Eclipse 的 SDK。

您应该使用项目的属性添加到搜索的位置包括:C++ General->Paths and Symbols->Includes

如果您确实需要链接到其他库,也可以使用属性 - 不是LD_LIBRARY_PATH- :C++ General->Paths and Symbols->Library Paths

于 2012-07-23T19:35:49.593 回答
1

查找头文件不是 LD_LIBRARY_PATH 的目的。该环境变量是告诉操作系统从哪里开始寻找共享库 - * .so文件。操作系统在准备执行程序时会寻找那些。当编译器在源代码中遇到语句时,它会使用包含路径来搜索标头。#include

不要修改 LD_LIBRARY_PATH 以影响程序的编译。

Eclipse 允许您在项目选项中设置包含路径。

于 2012-07-23T19:35:32.530 回答