前処理されたバージョンのみを取得したい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"
私は何を間違えましたか?
ソース ファイルに単純な main 関数が含まれていると仮定します。
$ 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
が空のときに発生します。「空」とは、ファイルにコメント、または#ifdef
false と評価される条件のブロックが含まれている可能性があることを意味することに注意してください。プリプロセッサはそれらをフィルターで除外するため、出力にも表示されません。
ライン マーカーが必要ない場合は、 -P オプションを使用します。
-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.