有没有办法让GCC的预处理器在找到#error时停止,当用选项 -E
运行它时?
例如,在以下程序中:
#error STOP HERE
int main() {
return 0;
}
在此程序上运行 gcc
会导致第1行的编译中断,但运行 gcc -E
会输出相同的行,然后继续进行预处理 .
注意:我的问题类似于GCC #pragma to stop compilation,但是关于 -E
标志,那么两者是否应该合并?
有没有办法让GCC的预处理器在找到#error时停止,当用选项 -E
运行它时?
例如,在以下程序中:
#error STOP HERE
int main() {
return 0;
}
在此程序上运行 gcc
会导致第1行的编译中断,但运行 gcc -E
会输出相同的行,然后继续进行预处理 .
注意:我的问题类似于GCC #pragma to stop compilation,但是关于 -E
标志,那么两者是否应该合并?
1 回答
最简洁的答案是不 . 处理器指令(例如#error)用于向编译器发出命令 . 通过使用-E选项,编译器永远不会运行,因此它没有理由停止 . -E标志用于打印所有使用您的程序编译而无需实际编译的代码 .