Есть ли способ получить пробелы внутри имен объектов, работающих при использовании make.exe? Вроде бы невозможно, если бы это действительно древнее сообщение об ошибке правильно: http://savannah.gnu.org/bugs/?712Разрешить пространство в целевом файле GCC makefile
Для справки, большая проблема заключается в том, что куски Makefile команды, как:
"foo bar baz": $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
... кажется, получает лечение как три отдельные команды: один для построения «foo (note the included»), один для построения бара, и, наконец, один для построения baz »(опять же, включая«). Это связано с тем, что make.exe использует пробел как разделитель.
Однако, разумно предположить, что, например, может потребоваться построить «Hello World.exe». Это не представляется возможным. Двойные кавычки не работают, и ни делаю спасаясь отдельными словами (я читал, что где-то, не помню ссылку):
"foo\\ bar\\ baz": $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
есть ли другой способ, чтобы исправить это? Официальное руководство только подтверждает материал разметить-на-пространствах, но не предоставляет способ использовать пространство для любых других целей: http://www.gnu.org/software/make/manual/make.html#Rule-Syntax
Edit: как это было предложено, я попробовал одиночный слэш тоже, но они имеют тот же эффект, что и двойные косые черты. Сделать жалуется, что не может найти правила для первого слова:
mingw32-make.exe: *** No rule to make target `foo', needed by `all'. Stop.
Исполняемых «Foo бара baz.exe» правильно производится, хотя, но связывание выполняется каждый раз, когда за слово.
Это не работает, см. Редактирование. – Orwell
@Orwell: Тогда это похоже на операционную систему. Как вы определяете файл с пробелами в имени в своей оболочке? – Matthias