【问题标题】:Is it possible to alter code in Eclipse CDT based on build configuration?是否可以根据构建配置更改 Eclipse CDT 中的代码?
【发布时间】:2017-10-11 22:58:02
【问题描述】:

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

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

这似乎应该是一个不难弄清楚的常见任务。也许我遗漏了一些明显的东西,但我似乎找不到任何关于我正在尝试做的事情的文档。这甚至可能吗?我看错方向了吗?

【问题讨论】:

  • 您使用的是托管构建项目还是 makefile 项目?
  • 目前它是一个托管构建。如果我们开始远离 Eclipse,我会将其转换为 makefile 项目。

标签: c++ eclipse eclipse-cdt


【解决方案1】:

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

在项目属性中,转到 C/C++ 常规 --> 路径和符号 --> 符号 --> 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

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2011-08-20
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多