Ich möchte nur vorverarbeitete Version von file.cc
erhalten. Ich habe g++ -E file.cc
bekam:g ++ Präprozessor-Ausgabe
# 1 "file.cc"
# 1 "<command-line>"
# 1 "file.cc"
Was habe ich falsch gemacht?
Ich möchte nur vorverarbeitete Version von file.cc
erhalten. Ich habe g++ -E file.cc
bekam:g ++ Präprozessor-Ausgabe
# 1 "file.cc"
# 1 "<command-line>"
# 1 "file.cc"
Was habe ich falsch gemacht?
wird angenommen, dass die Quelldatei eine einfache Hauptfunktion enthält:
$ cat file.cc
int main() {
return 0;
}
Dann mit dem Befehl, den Sie zeigte, sieht die Ausgabe wie folgt aus:
$ g++ -E file.cc
# 1 "file.cc"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "file.cc"
int main() {
return 0;
}
Die Ausgabe, die in der gezeigt wird, Frage passiert, wenn file.cc
leer ist. Beachten Sie, dass "leer" bedeutet, dass die Datei noch Kommentare enthalten kann, oder #ifdef
Blöcke mit einer Bedingung, die zu false führt - da der Präprozessor sie ausfiltert, erscheinen sie auch nicht in der Ausgabe.
Wenn Sie die Linienmarkierungen nicht wollen, verwenden Sie die Option -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.
Ihren Beitrag verbessern. Was war in Ihrer Quelldatei usw. –
Die Quelldatei muss leer sein? – trojanfoe
Wir können nicht wissen, was Sie falsch gemacht haben, es sei denn, Sie sagen, was Sie getan haben und was Sie erwartet haben. – tenfour