gnu无法找到消息文件

时间:2014-04-27 23:00:07

标签: makefile gnu-make

我不知道为什么我从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的错误消息。

罗伯特

1 个答案:

答案 0 :(得分:1)

运行$(shell "ls -l $(CURDIR)" )就像在shell提示符下输入"ls -l /home/me/BitHoist/source"(包括引号)。

尝试一下,你会发现你会从makefile中得到同样的错误。 Make将这些引号逐字传递给shell,因此shell试图运行一个名为ls -l /home/me/BitHoist/source的程序,这显然不是真正的程序名。因此错误。