Gibt es eine Möglichkeit, Leerzeichen innerhalb von Zielnamen zu erhalten, wenn Sie make.exe verwenden? Es scheint unmöglich zu sein, wenn dies wirklich alte Bug-Report ist korrekt: http://savannah.gnu.org/bugs/?712Speicherplatz im Ziel des GCC-Makefiles zulassen
Als Referenz das große Problem ist, dass Stücke von Make-Datei Befehle wie:
"foo bar baz": $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
... scheinen als drei zu erhalten behandelt separate Kommandos: eins, um "foo (notiere das Eingeschlossene)" zu bauen, eins, um bar zu bauen, und schließlich ein, um baz zu bauen "(wieder einschließlich"). Das liegt daran, dass make.exe anscheinend Leerzeichen als Trennzeichen verwendet.
Es ist jedoch vernünftig anzunehmen, dass man zum Beispiel "Hello World.exe" erstellen möchte. Dies scheint nicht möglich zu sein. Doppelte Anführungszeichen funktionieren nicht, und weder die einzelne Worte nicht entkommen (ich habe gelesen, dass irgendwo, den Link nicht erinnern):
"foo\\ bar\\ baz": $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
Gibt es eine andere Möglichkeit, dies zu beheben? Das offizielle Handbuch bestätigt nur die tokenize-by-Räume Sachen, aber bietet keine Möglichkeit, Raum für andere Zwecke zu verwenden: http://www.gnu.org/software/make/manual/make.html#Rule-Syntax
Edit: wie vorgeschlagen, ich habe auch einzelne Schrägstriche versucht, aber Diese haben die gleiche Wirkung wie Doppelschlitze. Machen Sie beklagt es keine Regeln für das erste Wort finden:
mingw32-make.exe: *** No rule to make target `foo', needed by `all'. Stop.
Die ausführbare Datei „foo bar baz.exe“, obwohl korrekt erzeugt wird, aber Verknüpfung wird jedes Mal pro Wort getan.
Das scheint nicht zu funktionieren, siehe die Bearbeitung. – Orwell
@ Orwell: Dann scheint es eine Frage des Betriebssystems zu sein. Wie spezifiziert man eine Datei mit Leerzeichen im Namen in der Shell? – Matthias