3

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

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

这在 netbeans 中很容易做到;您只需在构建附加选项中添加带有反引号的 pkg-config 命令行,它会解析构建包含,甚至在理论上它应该更新索引器(尽管说实话,上次索引器从 pkg-config 正确更新时开启netbeans 6.8,它已在 6.9 和 6.9.1 上被破坏)

我读了这篇 StackOverflow 帖子,但我仍然不确定它如何帮助这个特定案例

我在某处读到您可以使用 $(shell pkg-config...) 生成环境变量,但不确定将命令放在哪里

如果没有简单的开箱即用解决方案,我将尝试此博客文章中的脚本

顺便说一句,我正在使用 eclipse helios -cdt 7

谢谢!

4

5 回答 5

3

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

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

于 2011-05-12T13:29:11.553 回答
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++ 构建->设置->“工具设置”选项卡-> C 链接器-> 命令行模式${FLAGS}中执行此操作:

从此(例如):

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

对此:

${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS} ${FLAGS}**
于 2012-12-30T19:00:47.763 回答
2

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

`pkg-config --libs <mylibname>`

在 Project->Properties->C/C++ Build->Settings->GCC {C|C++} Linker->Miscellaneous->Linker Flags

相似地

`pkg-config --cflags <mylibname>`

在 Project->Properties->C/C++ Build->Settings->GCC {C|C++} Compiler->Miscellaneous->Other Flags

于 2014-12-17T09:59:53.167 回答
1

到目前为止我发现你可以做

项目-> 属性-> c++ 构建-> 构建变量

添加一个字符串类型的新变量。随心所欲地称呼它:

UNITTEST_CPP_CXXFLAGS

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

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

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

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

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

于 2010-10-01T22:44:11.470 回答
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

于 2020-01-05T00:18:19.123 回答