Der folgende Code funktioniert:
1 | |
2 | |
3 | |
4 | |
Wenn ich SYSTEM_H auf der Kommandozeile für gcc definiere, gehts nicht:
1 | |
2 | |
3 | |
4 | |
Warum? https://gcc.gnu.org/onlinedocs/cpp/Computed-Includes.html sagt:
1 | |
Also müsste es doch per -D gehen. Wo ist der Fehler?
|
Anzeige
|
gcc: computed includeDer folgende Code funktioniert:
Wenn ich SYSTEM_H auf der Kommandozeile für gcc definiere, gehts nicht:
Warum? https://gcc.gnu.org/onlinedocs/cpp/Computed-Includes.html sagt:
Also müsste es doch per -D gehen. Wo ist der Fehler?
Gast
#4828756
Uhu U. schrieb: > Also müsste es doch per -D gehen. Wo ist der Fehler? vermutlich bei den " - die werden wohl von der Shell entsorgt.
Gast
#4828758
avr-gcc ... -DSYSTEM_H=\"system.h\" -c test.c -o obj/Debug/test.c Und jetzt kommt Stufe 2: Wenn man in Code::Blocks unter Project | Build options | #defines den Dateinamen angeben will, muss man den \ jeweils verdoppeln. Irreführend ist, dass im Build Log bei einfachem \
was ja erst mal ziemlich richtig aussieht. In Wirklichkeit wird der \ aber gefressen und -DSYSTEM_H="system.h" an die Shell übergeben
Gast
#4828854
Uhu U. schrieb: > In Wirklichkeit wird der \ aber gefressen Das wird von make interpretiert. Gleiches gilt für $. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|