允许GCC makefile目标中的空间

Orw*_*ell 8 gcc mingw makefile space target

有没有办法在使用make.exe时在目标名称中获取空间?如果这个真正古老的错误报告是正确的,似乎是不可能的:http: //savannah.gnu.org/bugs/?712

作为参考,最大的问题是makefile命令如下:

"foo bar baz": $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
Run Code Online (Sandbox Code Playgroud)

...似乎被视为三个独立的命令:一个用于构建"foo(注意包含"),一个用于构建条形图,最后一个用于构建baz"(再次,包括").这是因为make.exe似乎使用空格作为分隔符.

但是,假设人们可能想要构建"Hello World.exe"是合理的.这似乎不可能.双引号不起作用,也没有逃避单独的单词(我在某处读过,不记得链接):

"foo\\ bar\\ baz": $(OBJ)
    $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来解决这个问题?官方手册仅确认按空格标记的内容,但不提供将空间用于任何其他目的的方法:http: //www.gnu.org/software/make/manual/make.html#Rule-句法

编辑:按照建议,我也尝试过单斜线,但这些效果与双斜线完全相同.抱怨它无法找到第一个单词的规则:

mingw32-make.exe: *** No rule to make target `foo', needed by `all'.  Stop.
Run Code Online (Sandbox Code Playgroud)

虽然可以正确生成可执行文件"foo bar baz.exe",但每次每个单词都会进行链接.

Mat*_*ias 2

使用单反斜杠代替双反斜杠。以下 Makefile 有效(至少对于 gnu make 而言):

goal:   foo\ bar

foo\ bar:
    gcc -o "foo bar" "foo bar.c"
Run Code Online (Sandbox Code Playgroud)