Kann ich während der Kompilierung eines C-Codes definierte Makros sehen?

8

Ich habe ein Stück Code, das ohne Probleme mit x86 gcc 4.4.1 kompiliert, aber mit blackfin gcc 4.1.2 mit vielen "erwarteten unqualifizierten-id vor numerischen Konstanten" fehlschlägt. Ich sehe, dass einige Variablennamen mit einigen vordefinierten Makros kollidieren. Ist es möglich, definierte Makros in einer bestimmten Zeile einer cpp-Datei zu sehen?

    
Atilla Filiz 19.02.2010, 10:16
quelle

1 Antwort

11
%Vor%
  • Der Schalter -dM weist GCC an, alle in der angegebenen Datei definierten Makros auszugeben (es enthält eine Liste von Makros, die vom Sprachstandard definiert werden müssen, sowie alle zusätzlichen Makros, die GCC selbst definiert).

  • Der Schalter -E weist GCC an, das Kompilieren nicht fortzusetzen, nachdem die Datei vorverarbeitet wurde.

Um eine Liste von Makros zu sehen, die an einer gegebenen Zeile einer cpp-Datei definiert sind, kann es einfacher sein, zuerst eines der vordefinierten Makros (vom Compiler definierte Makros) herauszufiltern. In BASH können Sie Folgendes tun:

%Vor%

Dies sollte alle Makros herausfiltern, die durch Standard-System-Header oder -Frameworks definiert sind. Der zusätzliche Teil, -x c++ , teilt GCC mit, die Eingabe als C ++ - Quelle zu interpretieren [die Vorverarbeitung erfordert], weil sie aufgrund der Dateinamenserweiterung nicht ermittelt werden kann (der Quellcode wird übergeben) GCC über stdin).

    
dreamlax 19.02.2010, 10:19
quelle

Tags und Links