Просто чтобы добавить к единственному ответу. В случае, когда путь obj указан в кавычках, завершающий обратный слеш должен быть либо добавлен после кавычки закрытия пути, либо экранирован, если добавлен перед кавычкой.
cl /Fo"quoted path\obj"\ -c foo.c fee.c
OR
cl "/Foquoted path\obj"\ -c foo.c fee.c
OR
cl /Fo"quoted path\obj\\" -c foo.c fee.c
Говоря о NMAKE
, подобный синтаксис ожидается при передаче значений макросов в кавычках на NMAKE
командная строка. Задняя косая черта, кажется, имеет решающее значение для наблюдения.
nmake SOMEDIR="quoted path\obj"\
OR
nmake SOMEDIR="quoted path\obj\\"
OR
nmake "SOMEDIR=quoted path\obj"
НЕ
nmake SOMEDIR="quoted path\obj\"
, так как это приведет к экранированной кавычке \"
и будет захватывать все остальное, что следует в командной строке, и помещать его в $(SOMEDIR)
. Мне потребовалось время, чтобы диагностировать такое поведение, надеюсь, это сэкономит время кому-то еще.