2013-04-09 52 views
1

我很新作,我试图创建一个假目标打印目标:管道用make这么想的工作

.PHONY: help 
help: 
     $(MAKE) --print-data-base --question | \ 
     $(AWK) '/^[^.%][-A-Za-z0-9_]*:/ { print substr($$1, 1, length($$1)-1) }' | \ 
     $(SORT) | \ 
     $(PR) --omit-pagination --width=80 --columns=4 

的代码从here(第20页)拍摄。

当我运行make help我得到如下:

make --print-data-base --question | \ 
    '/^[^.%][-A-Za-z0-9_]*:/ { print substr($1, 1, length($1)-1) }' | \ 
    | \ 
    --omit-pagination --width=80 --columns=4 
/bin/sh: 3: Syntax error: "|" unexpected 
make: *** [help] Error 2 

什么是错的,我怎么能解决这个问题?

我正在开发linux mint,使3.81为i686-pc-linux-gnu打造。

回答

1

它看起来像$(AWK)$(SORT)$(PR)都扩展到空字符串,这意味着没有这样的变量在您的生成文件中定义。

+0

是的,并且总是用'--warn'运行make来捕获这些(所有到频繁的)错误。 – bobbogo 2013-04-09 10:41:55

+0

可以修改片段直接使用awk,sort,pr吗? – tarabyte 2015-07-25 05:11:45