我不知道为什么我从shell获取这些错误消息或者它们来自哪里? 我简化了一个make文件。这是make文件simple.mk
# simple trial makefile
$(warning Making where CURDIR is $(CURDIR))
$(warning $(shell ls -ld "$(CURDIR)" ) )
$(shell "ls -l $(CURDIR)" )
$(shell "\ls -l /home/me/BitHoist/run/objects" )
我跑了。
me $ make -f simple.mk
simple.mk:2: Making where CURDIR is /home/me/BitHoist/source
simple.mk:3: drwxrwxr-x. 2 me me 4096 Apr 27 18:37 /home/me/BitHoist/source
/bin/sh: ls -l /home/me/BitHoist/source: No such file or directory
/bin/sh: \ls -l /home/me/BitHoist/run/objects: No such file or directory
make: *** No targets. Stop.
me $
我想出了一个解决方案,附在$(警告)
中我不知道为什么会收到这些错误消息?
/bin/sh: ls -l /home/me/BitHoist/source: No such file or directory
/bin/sh: \ls -l /home/me/BitHoist/run/objects: No such file or directory
似乎是来自sh的错误消息。
罗伯特答案 0 :(得分:1)
运行$(shell "ls -l $(CURDIR)" )
就像在shell提示符下输入"ls -l /home/me/BitHoist/source"
(包括引号)。
尝试一下,你会发现你会从makefile中得到同样的错误。 Make将这些引号逐字传递给shell,因此shell试图运行一个名为ls -l /home/me/BitHoist/source
的程序,这显然不是真正的程序名。因此错误。