我在源代码管理中添加了一个文件,该文件的枚举定义为:
enum { OK = 0, ERROR };
但是在编译时它会抛出诸如“数字常量之前的预期标识符”之类的错误。我是否对此进行了研究,罪魁祸首应该是在代码中的其他地方定义的“OK”。因此,我将 OK 更改为 OK_1,问题确实得到了解决。
但是,我无法在我的代码库中找到之前定义的“OK”。我从顶层运行了一个 grep 并找不到它。我很确定我已经涵盖了所有与应用程序相关的代码,但 OK 不存在。
我认为它不太可能是某些共享库的一部分,因为编译过程甚至没有达到链接阶段。它可能来自头文件之一。
有没有一种方法/linux工具可以以某种方式被欺骗来找到这个OK的来源?
原文由 Sahil 发布,翻译遵循 CC BY-SA 4.0 许可协议
将我的评论转换为答案。
看起来你需要预处理器输出 gcc 可以在预处理后输出 C 代码吗?