如何让'gcc -E'停在#error上

时间:2013-03-26 17:03:19

标签: gcc c-preprocessor

有没有办法让GCC的预处理器在找到#error时停止,当使用选项-E运行它时?

例如,在以下程序中:

#error STOP HERE
int main() {
  return 0;
}

在此程序上运行gcc会导致第1行的编译中断,但运行gcc -E会输出相同的行,然后继续进行预处理。

注意:我的问题类似于GCC #pragma to stop compilation,但是关于-E标志,那么两者是否应该合并?

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。处理器指令(例如#error)用于向编译器发出命令。通过使用-E选项,编译器永远不会运行,因此它没有理由停止。 -E标志用于打印所有使用您的程序编译而无需实际编译的代码。