是否可以根据构建配置更改Eclipse CDT中的代码?

时间:2017-10-03 15:16:34

标签: c++ eclipse eclipse-cdt

我有一个C ++项目,我为CentOS 7和Raspberry Pi构建。我有一个用于编译CentOS的Eclipse构建配置和用于Raspberry Pi交叉编译的另一个构建配置。这些都很有效。

我想要的是根据我使用的构建配置自动更改一行或两行代码。我注意到Eclipse有一个名为ConfigName的构建变量,但我不认为它可以在代码中访问。我还尝试在项目设置中为每个构建配置手动创建一个宏。但是,当我尝试在代码中读取宏时,我得到的错误是它未在此范围内声明。除了基础知识之外,我真的不具备使用宏的经验,例如确定您正在编译的操作系统。

这似乎应该是一项难以弄清楚的常见任务。也许我错过了一些明显的东西,但我似乎无法找到关于我试图做什么的任何文件。这甚至可能吗?我看错了方向吗?

1 个答案:

答案 0 :(得分:1)

经过大量研究文档和反复试验后,我找到了解决方案。

在项目属性中,转到C / C ++ General - >路径和符号 - >符号 - > GNU C ++。为每个构建配置添加符号。我添加了以下内容:

CONFIG_DEBUG
CONFIG_PI_DEBUG
CONFIG_RELEASE
CONFIG_PI_RELEASE

注意:只是为了澄清,不要在同一个地方一起输入上述符号。在每个构建配置中输入每个作为单个符号。

然后,可以使用预处理程序指令更改代码。我基本上使用了以下内容:

#if defined(CONFIG_PI_RELEASE)
  // Raspberry Pi release code
#elif defined(CONFIG_RELEASE)
  // CentOS release code
#elif defined(CONFIG_PI_DEBUG)
  // Raspberry Pi debug code
#else
  // CentOS debug code
#endif