如果文件名包含空格,我如何在C中使用'make'?

Har*_*dal 1 c terminal makefile clang

简介:我创建了一个名为temperature 2.c的文件,当我使用终端'make'文件时,它返回一个错误:
make: *** No rule to make target 'temperature 2'. Stop.
终端输出截图

这是我在终端窗口中输入的内容.
make temperature\ 2

版本信息:我正在使用带有Apple LLVM版本8.1.0的 macOS 10.12.5(clang-802.0.42)
Xcode版本8.3.2(8E2002)

附加信息:我尝试过使用make "temperature 2"有人建议它可以在Windows上运行但是它不适用于Mac.
我在终端窗口中选择了正确的目录,我能够完美地编译所有其他文件.
该文件的截图

,我知道的事实,我可以简单地替换空间下划线来解决这个问题,但我想知道这是为什么首先发生.
终端可以很好地处理其名称中有空格的目录(使用反斜杠),那么为什么它不能在这种情况下工作呢?

提前致谢.

Chr*_*ner 5

Make附带了几个内置规则,但它们不会被设计为处理文件名中的空格或其他"异常"字符,因此您需要编写一个覆盖它们或更改文件名的Makefile.

此规则是您正在使用的规则 - 您必须在目标文件$@和输入文件周围加上引号$<.

%: %.c
        $(CC) $(CFLAGS) -o "$@" "$<"
Run Code Online (Sandbox Code Playgroud)