Eclipse IDE C/C++ 自动包含来自自定义构建脚本的路径

Eclipse IDE C/C++ automatic include paths from custom build script

我有一个自定义 python 脚本来构建我的项目以保持依赖性简单,我想将 Eclipse 用作 C++ IDE 但保留我的构建脚本。

为了维护自动完成和智能感知(使用文档等...),我想告诉 Eclipse (非标准)headers 并定义在我的脚本中的依赖项解析期间添加。

我发现“.cproject”文件包含此类信息,从构建脚本中更改它是否安全,或者有什么方法可以将我的脚本集成到 Eclipse 本身中吗?

示例:

# TestGame.json
{
  "name": "TestGame",
  "extend": "BASE",
  "actions": ["COMPILE", "LINK"],
  "CC": [
    "G++11"
  ],
  "dep": {
    "builds": ["DFResourcer", "DFSDL"],
    "libs": ["SDL2", "SDL2main"]
  }
}

我的构建脚本将编译修改后的文件并 link 它们与所有需要的文件,并将找到 "/home/cpp-projects/DFSDL/include",其他必须的路径包括并且需要 --std=c++11,我想要一种方法告诉 Eclipse(不是手动)搜索 headers 也在那里进行自动完成等。 .

I've found that ".cproject" file contains such information, is it safe to alter it from the build scripts

这是可行的,但不推荐,因为文件格式没有记录并且不能保证在 Eclipse 版本中稳定。

is there any way to integrate my script in Eclipse itself?

您可以编写一个 Eclipse 插件来运行您的脚本并与之通信或使用它产生的输出。然而,这似乎是一个重量级的解决方案。

我会建议以下简单的解决方案:

Eclipse 有一个构建输出解析器。我已经在其他答案中写过如何使用它,例如 。基本上,它旨在解析 make 调用的输出,解析任何看起来像编译器命令的行,并根据该命令中的 -I 参数配置包含路径。

即使您使用的是自定义构建脚本而不是 make,您也可以使用它:只需让您的脚本输出它调用的编译器命令(如果需要,您可以将其设置为有条件的在 --verbose 之类的标志上),并配置 Eclipse 在构建项目时调用构建脚本而不是 make(如果使用的话则传入标志)。