Ich habe eine c-Quelldatei, an die ich ein quoted Makro über GCC -D
Befehlszeilen-Flag übergeben möchte. (Siehe auch How do I pass a quoted string with -D to gcc in cmd.exe?). Und ich arbeite in cmd.exe.Wie behandelt Gnu-make mit Anführungszeichen im Makefile, wenn es in cmd.exe aufgerufen wird?
Es ist möglich, das Programm direkt wie so zu kompilieren:
c:\MinGW\bin\gcc.exe -DDEFINED_STRING="\"foo bar baz\"" foo.c -o foo.exe
Aber wenn ich eine Make-Datei mit folgendem Inhalt
foo.exe: foo.c
c:\MinGW\bin\gcc.exe -DDEFINED_STRING="\"foo bar baz\"" foo.c -o foo.exe
und dann ein make
, GNUs machen versuchen, erstellen ausführen /bin/sh
und die umgekehrten Schrägstriche des Pfades zu gcc.exe aufrufen:
gcc-4.7.0/gcc/config/avr -c c:/temp/gcc-4.7.0/gcc/gcc.c -o o/gcc/gcc.o
/bin/sh: c:MinGWbing++.exe: command not found
make: *** [o/gcc/gcc.o] Error 127
stradnell genug, das passiert nicht, wenn ich -DDEFINED_STRING=foo
(das heißt: ohne Anführungszeichen) verwenden. viele Nuancen
make -v
druckt GNU Make 3.81