Wie sehe ich eine C/C++-Quelldatei nach der Vorverarbeitung in Visual Studio?

Lesezeit: 4 Minuten

Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
Geo

Nehmen wir an, ich habe eine Quelldatei mit vielen Präprozessordirektiven. Ist es möglich zu sehen, wie es aussieht, nachdem der Präprozessor damit fertig ist?

  • Es wäre hilfreich, wenn Sie weitere Informationen angeben würden, z. B. welchen Compiler Sie verwenden.

    – JaredPar

    10. November 2008 um 7:14 Uhr

  • Ich verwende derzeit Visual Studio 2005 als meine IDE.

    – Geo

    10. November 2008 um 7:16 Uhr

  • Dann verwenden Sie standardmäßig den cl.exe-Compiler.

    – Martin York

    10. November 2008 um 15:37 Uhr

  • Warum wurde eine gcc-Antwort akzeptiert, als er sagte, er verwende VS2005?

    – Jim Buck

    10. November 2008 um 16:49 Uhr

  • Verwandte: Compiler-Info.

    – Laurie Stearn

    17. Januar 2020 um 9:17 Uhr

Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
bk1e

cl.exedie Befehlszeilenschnittstelle zu Microsoft Visual C++, hat drei verschiedene Optionen für die Ausgabe der vorverarbeiteten Datei (daher die Inkonsistenz in den vorherigen Antworten zu Visual C++):

Wenn Sie eine Datei ohne #line-Anweisungen vorverarbeiten möchten, kombinieren Sie die /P und /EP Optionen.

  • Wie übergebe ich diese Befehle an ein Projekt mit nmake und Makefile?

    – WooDzu

    9. März 2014 um 8:00 Uhr

  • @WooDzu Verwenden Sie NMAKE (nmake.exe), um Aufgaben zu automatisieren, die Visual C++-Projekte erstellen, indem Sie ein herkömmliches Makefile verwenden. ~ msdn.microsoft.com/en-us/library/f35ctcxw.aspx

    – G. Rassovsky

    17. März 2015 um 9:11 Uhr


  • Bitte beachte, dass /P unterdrückt die Generierung von obj-Dateien. Also, wenn Sie setzen /P Optionen erhalten Sie möglicherweise eine Fehlermeldung, die besagt, dass einige obj-Dateien nicht gefunden werden können, da sie tatsächlich überhaupt nicht generiert werden.

    – smWikipedia

    9. August 2016 um 2:16 Uhr


  • Stellen Sie sicher, dass Sie dabei sind VS Developer command prompt und NICHT drin Command prompt beim Versuch, den MS-Compiler zu verwenden (cl). Der Compiler ist in der herkömmlichen Eingabeaufforderung nicht verfügbar.

    – dmytro.poliarush

    25. Dezember 2019 um 11:30 Uhr


  • VS2019-Community: Die /P LNK 1104 Fehler ist immer noch frisch aus der Presse.

    – Laurie Stearn

    17. Januar 2020 um 8:42 Uhr

1647090609 640 Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
Tod Gamblin

Die meisten Compiler haben die Möglichkeit, nur den Präprozessor auszuführen. z.Bgcc liefert -E:

   -E  Stop after the preprocessing stage; do not run the compiler proper.  
       The output is in the form of preprocessed source code, which is sent
       to the standard output.

Sie können also einfach ausführen:

gcc -E foo.c

Wenn Sie eine solche Option nicht finden, können Sie auch einfach den C-Präprozessor auf Ihrem Computer finden. Es heißt normalerweise cpp und ist wahrscheinlich bereits in Ihrem Weg. Rufen Sie es so auf:

cpp foo.c

Wenn Sie Header aus anderen Verzeichnissen einfügen müssen, können Sie -I/path/to/include/dir an eines dieser Verzeichnisse übergeben, genau wie bei einer normalen Kompilierung.

Für Windows überlasse ich es anderen Postern, Antworten zu geben, da ich dort kein Experte bin.

  • gcc-Frage: stackoverflow.com/questions/3916979/…

    – Ciro Santilli Путлер Капут 六四事

    17. Januar 2016 um 11:44 Uhr

1647090610 713 Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
Jim Buck

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei, gehen Sie zu Eigenschaften. Unter Konfigurationseigenschaften->C/C++->Präprozessor ist “Generate Preprocessed File” das, wonach Sie suchen. Klicken Sie dann im Solution Explorer mit der rechten Maustaste auf die Datei und wählen Sie „Compile“. Die vorverarbeitete Datei wird im Ausgabeverzeichnis (z. B. Release, Debug) mit der Erweiterung .i erstellt (danke an Steed für seinen Kommentar).

  • „In eine Datei vorverarbeiten“ in VS2010.

    – Rob W

    1. November 2013 um 9:31 Uhr

  • Übrigens wird die Datei im Ausgabeverzeichnis erstellt (z Release, Debug) mit Erweiterung .i.

    – Ross

    10. Januar 2014 um 11:05 Uhr

  • Dies hilft sehr, da es die bereits im Projekt eingerichtete Build-Konfiguration verwendet, um alle richtigen Header zu finden.

    – IanH

    6. November 2015 um 19:45 Uhr

  • Beachten Sie, dass für mich auf MSVC 2015 die .i-Datei nicht in der .i-Datei enthalten war Ausgabe Verzeichnissondern im Projekt Zwischenverzeichnis. Diese sind nicht identisch, wenn Sie zB Ihre Projekte mit CMake generieren.

    – Benutzer1556435

    18. Dezember 2017 um 16:39 Uhr

1647090610 48 Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
idak

Normalerweise müssen Sie die Ausgabe des Präprozessors etwas nachbearbeiten, sonst werden alle Makros nur zu Einzeilern erweitert, was schwer zu lesen und zu debuggen ist. Für C-Code würde so etwas wie das Folgende ausreichen:

gcc -E code.c | sed '/^\#/d' | indent -st -i2 > code-x.c

Für C++-Code ist es tatsächlich viel schwieriger. Für GCC/g++ habe ich gefunden dieses Perl-Skript sinnvoll.

1647090610 821 Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
Atemcode

Versuchen cl /EP wenn Sie den C++-Compiler von Microsoft verwenden.

1647090611 619 Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
dzav

Ich weiß nichts über den Microsoft-Compiler, aber auf GCC können Sie Folgendes verwenden:

gcc -E -P -o result.c my_file.h

Wenn Sie Kommentare sehen möchten, verwenden Sie dies:

gcc -E -C -P -o result.c my_file.h

Weitere Optionen verfügbar auf diese Seite.

1647090611 177 Wie sehe ich eine CC Quelldatei nach der Vorverarbeitung in Visual
Andreas Magnusson

In Visual Studio können Sie eine Datei (oder ein Projekt) mit /P kompilieren.

993690cookie-checkWie sehe ich eine C/C++-Quelldatei nach der Vorverarbeitung in Visual Studio?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy