Hallo zusammen,
Ich dachte ich erstell mal ein Thema darüber, vielleicht hilft es anderen Leuten auch weiter.
Es geht mir momentan um das "Q_OS_WIN" QT Makro, was ein vordefiniertes Makro ist.
Dieses Makro ist definiert, wenn man auf einem Windows Betriebsystem compiliert.
Siehe auch QT Dokumentation: http://doc.qt.io/qt-5/qtglobal.html#Q_OS_WIN
Jetzt zu meiner Allgemeinen Frage:
1. Wie kann ich auf einem Betriebsystem prüfen, ob ein solches Makro auch wirklich definiert wurde?
2. Ist es möglich die ersetzten Codeteile nach dem der Präprozessor seine Arbeit gemacht hat anzusehen?
Vordefinierte Makros QT Augenmerk auf das QT Makro "Q_OS_WIN"
Re: Vordefinierte Makros QT Augenmerk auf das QT Makro "Q_OS_WIN"
1. Was genau meinst du? - Einfach per Präprocessordirektife abfragen ob das Macro definiert wurde: #ifdef .. #endif
2. Moderne IDEs zeigen den Inhalt beim Darüberzeigen an. Eine andere Möglichkeit wäre es diese in ein String zu konvertieren und dann in der Anwendung auszugeben.
2. Moderne IDEs zeigen den Inhalt beim Darüberzeigen an. Eine andere Möglichkeit wäre es diese in ein String zu konvertieren und dann in der Anwendung auszugeben.
Re: Vordefinierte Makros QT Augenmerk auf das QT Makro "Q_OS_WIN"
herby1990 hat geschrieben:1. Wie kann ich auf einem Betriebsystem prüfen, ob ein solches Makro auch wirklich definiert wurde?
Code: Alles auswählen
#ifdef Q_OS_WIN
// do windows only stuff here
#endif
Ja, gcc z.B. kennt die Option -E. Also z.B.herby1990 hat geschrieben:2. Ist es möglich die ersetzten Codeteile nach dem der Präprozessor seine Arbeit gemacht hat anzusehen?
Code: Alles auswählen
g++ -E <file>.cpp
-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.