(过度依赖IDE的情况)
我有一些遗留的C代码,作为单元测试的目的,我编译为C++。C源是C++,因为它有条件地基于环境定义。
例如(PRIVATE分解为static):

#if!defined __cplusplus
#define PRIVATE1 PRIVATE
#endif

...
PRIVATE1 const int some_var;

问题是,我似乎找不到什么是解决或在C++中,编译器抱怨重新定义,如果我添加一个声明,但不表示在哪里?
我已经搜索了我的MinGW /GCC包括路径,C++ ISO规范和C++书籍对我来说都是徒劳的。
编辑:
当然我在发布之前检查了命令行和makefiles。

最佳答案

在ISOC++SPECH中没有类似的东西。最有可能的是PRIVATE1(以及PRIVATE)在项目的其他地方被定义。注意,在.h文件中不需要是#define文件,也可以通过makefile中的编译器开关来定义。我建议在项目目录上做一个完整的grep。

10-08 02:01