1

我正在为同一个目标开发两个非常相似的嵌入式项目(它们共享大部分代码)。为此,我创建了两个构建:构建 A 和构建 B。每个构建都有一些在符号中定义的细微差别:“DEVICE_TYPE=”根据项目包含或排除源代码。这样我就可以执行以下操作,

#if (DEVICE_TYPE == A)
[Code for build A]
#endif

#if (DEVICE_TYPE == B)
[Code for build B]
#endif

我的问题是 Eclipse 的语法总是抛出错误,因为显然它总是认为 DEVICE_TYPE 等于 B。不过,两个构建都编译没有任何问题。

更新:

符号在 Project_Properties->C/C++ Build->Settings->Tool Settings->Compiler->Preprocessor->Define Syms (-D) 中定义如下:

在构建 A 的情况下

DEVICE_TYPE=A
A=0
B=1

在构建 B 的情况下

DEVICE_TYPE=B
A=0
B=1

这里的问题是,对于 Eclipse,无论选择哪个 Build,DEVICE_TYPE 始终为 B。这意味着其中的所有代码#if (DEVICE_TYPE==A)都是灰色的。

4

1 回答 1

2

您是否尝试过此答案中提到的“使用活动构建设置”的 Eclipse 设置: 使用活动构建设置

于 2013-03-05T14:55:31.177 回答