【问题标题】:eclipse cdt: add include path from pkg-configeclipse cdt:从 pkg-config 添加包含路径
【发布时间】:2010-09-28 19:49:38
【问题描述】:

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

我在项目属性->c++ 常规->路径和符号->包括选项卡->添加...->添加目录路径->变量但我只能在现有变量中进行选择,我如何创建一个新的从命令行程序动态生成的变量?喜欢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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 好消息!!感谢您的信息.. 我认为这将自动与代码完成索引器挂钩?
    • 让我们看看。目前的计划是在属性页面上显示可用的包,用户需要检查所需的包。然后这些选项会自动提供给编译器和链接器。当然,如果 Eclipse 能够根据源代码自行确定使用了哪些包,那就太好了。我牢记这一点。欢迎任何其他建议。
    • 嗨,我有一些好消息。现在您可以测试应该可以正常工作的 beta 版本。 marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt 只需导航到项目属性 -> C/C++ 构建 -> 设置 -> Pkg-config 并检查您需要的包。感谢您提供反馈。
    【解决方案2】:

    您可以在以下位置使用 $(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}**
    

    【讨论】:

      【解决方案3】:

      至少在 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

      【讨论】:

        【解决方案4】:

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

        项目-> 属性-> 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} 添加到其他标志。

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

        【讨论】:

          【解决方案5】:

          在 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

          【讨论】:

          • 从这篇文章的错别字和你在这个页面上的其他帖子的存在来看,你不知道edit你自己的帖子的可能性。请拨打tour
          猜你喜欢
          • 1970-01-01
          • 2012-10-02
          • 2021-08-29
          • 1970-01-01
          • 2011-03-05
          • 1970-01-01
          • 1970-01-01
          • 2013-12-25
          • 2012-04-22
          相关资源
          最近更新 更多