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.
我在终端窗口中选择了正确的目录,我能够完美地编译所有其他文件.
该文件的截图
,我知道的事实,我可以简单地替换空间有下划线来解决这个问题,但我想知道这是为什么首先发生.
终端可以很好地处理其名称中有空格的目录(使用反斜杠),那么为什么它不能在这种情况下工作呢?
提前致谢.
Make附带了几个内置规则,但它们不会被设计为处理文件名中的空格或其他"异常"字符,因此您需要编写一个覆盖它们或更改文件名的Makefile.
此规则是您正在使用的规则 - 您必须在目标文件$@和输入文件周围加上引号$<.
%: %.c
$(CC) $(CFLAGS) -o "$@" "$<"
Run Code Online (Sandbox Code Playgroud)