eclipse cdt:从pkg-config添加include路径

时间:2010-09-28 19:49:39

标签: c++ eclipse eclipse-cdt eclipse-3.6 pkg-config

我想在我的项目中添加动态配置路径(从pkg-config生成)。 (这基本上是针对像boost这样的第三方依赖项,因此工作区包含不合适,而文件系统既不包括因为硬编码而且每个开发人员都必须手动更改)

我在项目属性 - > c ++ general->路径和符号 - >包括tab-> add ...->添加目录路径 - >变量但我只能在现有变量中选择,如何创建从命令行程序动态生成的新变量?比如pkg-config --cflags boost-1.43

这在netbeans中很容易做到;你只需要在构建附加选项中添加带反引号的pkg-config命令行,它就可以解析构建包含,甚至在理论上它应该更新索引器(虽然说实话,上次索引器正在从pkg-config正确更新时) netbeans 6.8,它在6.9和6.9.1上被打破了)

我读过this StackOverflow post,但我仍然不确定它对这个具体案例有何帮助

我读somewhere你可以使用$(shell pkg-config ...)来生成环境变量,但不知道在哪里放置命令

如果没有简单易用的解决方案,我会尝试script in this blog post

不过,我正在使用eclipse helios -cdt 7

谢谢!

5 个答案:

答案 0 :(得分:3)

Pkg-config支持终于来到CDT,将于8月份完成。

http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

答案 1 :(得分:3)

你可以在:

中使用$(shell pkg-config - cflags your_libs)
Project properties->C/C++ Build->Settings->"Tools Settings" tab->**C Compiler**->Miscellaneous->Other Flags

你可以使用

$(shell pkg-config **--libs** your_libs) 

Project properties->C/C++ Build->Settings->"Tools Settings" tab->**C Linker**->Miscellaneous->Other Flags

如果链接器没有链接,请确保(例如在构建控制台窗口中)pkg-config标志出现在要链接的对象之后。 你可以在属性中执行此操作 - > C / C ++ Build-> Settings->“工具设置”选项卡 - > C链接器 - >命令行模式移动${FLAGS}到结束:

来自(例如):

${COMMAND} **${FLAGS}** ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS}**

到此:

${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS} ${FLAGS}**

答案 2 :(得分:2)

至少在eclipse 4.3.2中,看起来好像可以简单地添加

`pkg-config --libs <mylibname>`

在 项目 - &gt;属性 - &gt; C / C ++构建 - &gt;设置 - &gt; GCC {C | C ++}链接器 - &gt;杂项 - &gt;链接器标志

类似地

`pkg-config --cflags <mylibname>`

在 项目 - &gt;属性 - &gt; C / C ++构建 - &gt;设置 - &gt; GCC {C | C ++}编译器 - &gt;杂项 - &gt;其他标志

答案 3 :(得分:1)

到目前为止我发现的是你能做到的

项目 - &GT;属性 - &GT; c ++ build-&gt;构建变量

添加一个新的字符串类型变量。 无论你喜欢什么,都可以打电话:

UNITTEST_CPP_CXXFLAGS

然后设置为其值: $(shell pkg-config --cflags unittest-cpp)

转到项目属性 - &gt; c ++ general - &gt;路径和符号, 包括。 选择语言c ++,否则默认为汇编源文件。 单击添加。 在添加目录路径上,单击变量...(因为我们要添加我们刚刚创建的变量)

输入变量名称(UNITTEST_CPP_CXXFLAGS),按回车键确定

当你重建shell命令的结果被替换为-I选项时(至少对于gnu gcc工具链),通常pkg-config输出可能包含一个或多个-I,所以这不起作用。让我们转到c ++ build-&gt; settings-&gt;工具设置 - > gcc c ++ compiler-&gt;杂项。在那里,将$ {UNITTEST_CPP_CXXFLAGS}添加到其他标志。

现在将添加include,但是没有希望让索引器浏览那些include!

答案 4 :(得分:0)

在eclipse帮助中使用此链接/安装新的spftware。它安装pkg-config。 https://raw.githubusercontent.com/TuononenP/pkg-config.p2/master/site.xml 我确实在此网页中找到此链接。 https://groups.google.com/forum/#!topic/pkg-config-support-for-eclipse-cdt/HNblZRTKBQQ