2 Fragen zu GCC / G++
-
1. Ist es möglich, GCC / G++ Flags in dem zu kompilierendem Quellcode zu erläutern ohne sie beim kompilieren jedes mal dem Compiler mitteilen zu müssen?
2. ist es möglich, so wie im ersten Beispiel wo es sich um die Ermittlung des Betriebssystems handelt, eigene Bedingungen zu definieren welche der Compiler während der Kompilierung berücksichtigt?
Beispiel:
#ifndef _WIN32 //Plattform == windows #endifZiel:
g++ main.cpp -o main -einschalten#if einschalten //kompiliere dies #else //ansonsten... #endif
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
RussianTux schrieb:
1. Ist es möglich, GCC / G++ Flags in dem zu kompilierendem Quellcode zu erläutern ohne sie beim kompilieren jedes mal dem Compiler mitteilen zu müssen?
Jain. Nicht so wie du es formulierst und das ist auch gut so. Aber man kann eine Menge angeben. Ich sag mal: RTFM! Insbesondere:
http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions
http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html#C_002b_002b-Extensions
http://gcc.gnu.org/onlinedocs/gcc/Pragmas.html#Pragmas2. ist es möglich, so wie im ersten Beispiel wo es sich um die Ermittlung des Betriebssystems handelt, eigene Bedingungen zu definieren welche der Compiler während der Kompilierung berücksichtigt?
Beispiel:
#ifndef _WIN32 //Plattform == windows #endifZiel:
g++ main.cpp -o main -einschalten#if einschalten //kompiliere dies #else //ansonsten... #endifJa:
http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options
Und halte dich deiner eigenen Gesundheit wegen bitte an übliche Makrokonventionen:
- Alle Makros komplett großschreiben, diese Schreibweise nur für Makros benutzen
- Alle Makros mit einem möglichst einzigartigen Präfix (analog zu einem namespace) versehen, zum Beispiel deinen Initialen oder einer Abkürzung des Projektnamens.