我希望只获取预处理后的file.cc
版本。我执行了g++ -E file.cc
,得到:
# 1 "file.cc"
# 1 "<command-line>"
# 1 "file.cc"
我做错了什么?
我希望只获取预处理后的file.cc
版本。我执行了g++ -E file.cc
,得到:
# 1 "file.cc"
# 1 "<command-line>"
# 1 "file.cc"
我做错了什么?
假设你的源文件包含一个简单的主函数:
$ cat file.cc
int main() {
return 0;
}
然后,使用你展示的命令,输出看起来像这样:
$ g++ -E file.cc
# 1 "file.cc"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "file.cc"
int main() {
return 0;
}
问题中显示的输出是在file.cc
为空时发生的。请注意,“空”意味着文件仍然可以包含注释或具有计算结果为false的#ifdef
块 - 因为预处理器会过滤它们,所以它们也不会出现在输出中。
-P
Inhibit generation of linemarkers in the output from the preprocessor. This might
be useful when running the preprocessor on something that is not C code, and will
be sent to a program which might be confused by the linemarkers.