【发布时间】:2020-04-25 10:23:06
【问题描述】:
C++
我知道有些/大多数人会说将所有警告都视为错误,但我正在使用的代码库目前不可行。 我有两个由外部工具生成的头文件,其中包含我需要访问的一些硬件的地址。 例如
header1.h
#define address1 0x123
header2.h
#define address1 0x123
上述情况并不理想,但很好,在这种情况下预处理器不会产生警告。但是,如果第二个宏定义不同,我希望它标记错误而不是警告。 在 Eclipse 中,如果我将 address1 的第二个定义更改为不同,我将收到如下警告:
'地址1重新定义[默认启用]'
我找不到可用于将此视为错误的警告编号或开关。
【问题讨论】:
-
C 和 C++ 是两种不同的语言。看来您实际上是用 C++ 编写的,所以请删除
c标签 -
您希望编译器在构建时给您一个错误,或者您希望 Eclipse 在您构建之前向您显示错误?
-
问题的根源是外部工具。建议使用外部工具,当它生成
header2.h时生成:#define address2 0x123或者不要在同一个编译单元中包含两个头文件