Ich habe ein Stück Code, der mit x86 gcc 4.4.1 ohne Probleme kompiliert, aber mit blackfin gcc 4.1.2 mit vielen "erwartete unqualifizierte-id vor numerischen Konstante" Fehler 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?Kann ich während der Kompilierung eines C-Codes definierte Makros sehen?
Antwort
gcc -dM -E myfile.cpp
Der
-dM
Schalter teilt GCC alle Makros in der angegebenen Datei definiert Dump (es wird eine Liste von Makros erforderlich ist und durch den Sprachstandard definiert wird als zusätzliche Makros GCC selbst definiert).Der Schalter
-E
weist GCC an, das Kompilieren nicht fortzusetzen, nachdem es die Datei vorverarbeitet hat.
Um eine Liste von Makros in einer gegebenen Zeile einer CPP-Datei, kann es einfacher sein, zuerst herauszufiltern einen des vordefinierten Makros (Makros definiert durch den Compiler) definiert, um zu sehen. In BASH, könnten Sie tun:
LINE=40
FILE=myfile.cpp
HEADER=myfile.h
diff <(grep -h '#include[[:space:]]*<.*>' ${FILE} ${HEADER} | gcc -dM -x c++ -E -) <(cat ${FILE} | head -n ${LINE} | gcc -x c++ -dM -E -)
Diese alle Makros ausfiltern soll durch Standard-Header oder Frameworks definiert. Der zusätzliche Teil -x c++
weist GCC an, die Eingabe als C++ - Quelle zu interpretieren [die Vorverarbeitung erfordert], weil es aufgrund der Dateinamenerweiterung nicht in der Lage ist, sie zu bestimmen (der Quellcode wird über GCC an GCC übergeben) stdin).
- 1. Wie kann ich während der Kompilierung MAGICKCORE_QUANTUM_DEPTH und MAGICKCORE_HDRI_ENABLE ermitteln?
- 2. Python - Py_Initialize nicht aufgelöst während der Kompilierung
- 3. NPE während der GWT-Kompilierung
- 4. Kann ich gcc veranlassen, den Typ eines Objekts während der Kompilierung auszugeben?
- 5. Traversing eines Baumes während der Kompilierung, mit Besuch Aktionen
- 6. Mehrdeutiger Referenzfehler während der Kompilierung der Laufzeit
- 7. shared library nicht während der Kompilierung gefunden
- 8. Einschließlich Bibliotheken während Kompilierung
- 9. zur Quelle gehen mit benutzerdefinierten Nachrichten während der Kompilierung?
- 10. SBT: Anzeige der Klassendatei-Zusammenfassung während der Kompilierung?
- 11. Uncaught Ausnahme während der Kompilierung: java.lang.AssertionError
- 12. Wie Debuggen von Annotationsprozessor während der Kompilierung?
- 13. Widersprüchliche Typen während der Kompilierung von libpcap
- 14. Wie kann ich sehen qDebug Nachrichten, während in QtCreator Debuggen
- 15. Wie kann ich sehen, wenn MYSQL ein Feld während eines Update usint Perl DBI
- 16. Nicht definierte Variablen innerhalb eines Pakets während Build
- 17. Möglich, Konsole eine LESS-Variable während der Kompilierung protokollieren?
- 18. Schreiben eines Makros
- 19. Kann ich während eines LuisDialogs Anhänge verarbeiten?
- 20. Wie kann ich untersuchen und sehen, was während der ISO-Installation unter der Haube passiert?
- 21. Wie kann ich während der Javadoc-Kompilierung Warnungen unterdrücken (codebase-weit)?
- 22. Wie kann ich "rowcount" (?) Eines Textlabels in Xamarin-Formularen sehen?
- 23. Wie kann ich die Grundlinie eines HTML-Elements sehen?
- 24. Wie kann ich die Prototypkette eines JavaScript-Objekts sehen?
- 25. Schreiben von Daten auf bestimmte Adresse während der Kompilierung
- 26. Gibt es eine Möglichkeit, Makros zu verwenden, um während der Kompilierung zusätzliche Werte zu einer Enumeration hinzuzufügen?
- 27. Überprüfen Sie, ob Nummer während der Kompilierung in C++
- 28. Warum kann ich die Schlüssel eines Fehlerobjekts nicht sehen?
- 29. warum java logischen Operatoren zurückkehren, während der Kompilierung
- 30. Was ist die Warnmeldung "Ignoring InnerClasses attribute" während der Kompilierung?