【发布时间】:2016-01-10 03:14:24
【问题描述】:
我正在开发一个 C 语法分析程序。在运行 C 预处理器时,有一些库会检查环境并使用 #error 停止编译。我如何禁用它们,因为我只需要完成预处理步骤?
【问题讨论】:
-
您只想完成预处理步骤?没有标准的方法来抑制
#error的影响。很久以前(甚至可能在上个千年),即使 Solaris 编译器执行#error; 也会完成。然而,这是 Solaris 编译器中的一个错误——我相信这个错误早已修复。也许你需要看看为什么库(可能是头文件)会生成#error指令并设置它们以便它们不被执行——这样预处理器就不会遇到错误。 -
您可以修改文件并注释掉
#error行吗? -
如果您忽略#errors,您的分析结果会不会错误? #errors 显然不是由真正的编译过程触发的,因此您的分析器和真正的编译器之间肯定存在差异。
标签: c compiler-errors macros