我的makefile失败,错误:“多个目标模式”的Makefile错误
Makefile:34: *** multiple target patterns. Stop.
是什么真正的意思,我怎样才能解决这个问题?
(GNU make manual,由Captain Obvious编写,没有帮助)。
找到它了。我曾在形式规则:
$(FOO): bar
其中FOO
从shell命令与包含冒号错误消息,污秽了设置。
我的makefile失败,错误:“多个目标模式”的Makefile错误
Makefile:34: *** multiple target patterns. Stop.
是什么真正的意思,我怎样才能解决这个问题?
(GNU make manual,由Captain Obvious编写,没有帮助)。
找到它了。我曾在形式规则:
$(FOO): bar
其中FOO
从shell命令与包含冒号错误消息,污秽了设置。
我有它在Makefile文件
MAPS+=reverse/db.901:550:2001.ip6.arpa
lastserial: ${MAPS}
./updateser ${MAPS}
这是因为在文件名中:
的。 我
-------- notice // v v MAPS+=reverse/db.901\:550\:2001.ip6.arpa lastserial: ${MAPS} ./updateser ${MAPS}
我有同样的问题,但我不明白你的答案,你会为我进一步详细说明, – 2013-01-11 20:08:24
你让我吗? – 2013-01-11 20:16:10
@PirFahimShah答案是指出冒号(db.901:550:2001.ip6.arpa)中的冒号需要转义。 mcr通过在他们之前放置反斜线来逃避冒号。这样,make不会将冒号解释为特殊符号。 – Aaron 2016-08-18 14:04:04
解决了这个除了有逃避冒号作为原来的答案,我发现,如果压痕是关闭的,你可能会得到同样的问题。在一个makefile中,我不得不用一个tab替换空格,并且允许我通过错误。
在这种情况下,GNU make也可能会报告“没有针对目标的规则”。 – davenpcj 2013-08-15 19:38:39
我只想补充,如果你是因为你使用的是Cygwin的制作和 自动生成的文件得到这个错误,你可以用下面的sed修复,
sed -e '[email protected]\\\([^ ]\)@/\[email protected]' -e '[email protected][cC]:@/cygdrive/[email protected]' -i filename.d
您可能需要增加更多的字符不仅仅是空间到 第一次替换中的转义列表,但您明白了。这里的概念是/ cygdrive/c是 c:cygwin的make将会识别的别名。
,并且可以在
-e '[email protected]^ \[email protected]\[email protected]'
以及抛出,以防万一你有没有事故的空间开始(虽然我/想/这将 通常是“失踪分离器”的错误)。
我有这个问题(冒号在目标名称中),因为我在我的GREP_OPTIONS
环境变量中有-n
。显然,这导致configure
错误地生成Makefile
。
我遇到了同样的错误。 挣扎后,我发现这是由于文件夹名称中的“空格”。
例如:
早些时候我的文件夹名称为: “Qt的项目”
后来我把它改为: “QtProjects”
,我的问题就解决了。
它非常简单,但有时是一个主要问题。
请问http://www-01.ibm.com/support/docview.wss?uid=swg21119863或http://sourceware.org/ml/crossgcc/2009-07/msg00006.html帮助? – 2010-01-20 10:05:03
谷歌迅速显示http://groups.google.com/group/gnu.utils.help/browse_frm/thread/d7eeff06e2b8394/1c932a7ea7664ade?lnk=st&q=%22multiple+target+patterns%22&rnum=7#1c932a7ea7664ade – 2010-01-20 10:08:40
这些答案只是“你有多种目标模式”的解释。好吧,我想我没有。我如何检查它?什么可以触发它?需要采取哪些预防措施来防止此问题? – Kornel 2010-01-22 22:39:41