首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >“多目标模式”Makefile错误

“多目标模式”Makefile错误
EN

Stack Overflow用户
提问于 2010-01-20 18:03:12
回答 5查看 133.2K关注 0票数 90

我的makefile失败,错误如下:

代码语言:javascript
复制
Makefile:34: *** multiple target patterns.  Stop.

这到底是什么意思,我该如何解决这个问题?

(GNU make manual,由显而易见的船长写的,没有帮助)。

找到了。我有形式上的规则:

代码语言:javascript
复制
$(FOO): bar

其中FOO是从外壳命令设置的,该命令用包含冒号的错误消息污染了它。

EN

回答 5

Stack Overflow用户

发布于 2013-02-16 01:51:14

除了必须像在原始答案中那样转义冒号之外,我还发现如果缩进关闭,可能会遇到同样的问题。在一个makefile中,我必须用制表符替换空格,这让我可以跳过这个错误。

票数 24
EN

Stack Overflow用户

发布于 2013-09-25 01:28:16

我只想补充一下,如果你因为使用Cygwin make和自动生成的文件而得到这个错误,你可以用下面的sed来修复它。

代码语言:javascript
复制
sed -e 's@\\\([^ ]\)@/\1@g' -e 's@[cC]:@/cygdrive/c@' -i filename.d

在第一个替换中,您可能需要向转义列表中添加更多字符,而不仅仅是空格,但是您已经明白了这一点。这里的概念是/cygdrive/c是c的别名:cygwin的make可以识别。

也可以把它扔进去

代码语言:javascript
复制
-e 's@^ \+@\t@'

以防你意外地从空格开始(尽管我/我认为/这通常是一个“缺少分隔符”的错误)。

票数 4
EN

Stack Overflow用户

发布于 2020-09-07 21:47:53

我的IDE在Makefile中留下了空格和制表符的混合。

将Makefile设置为仅使用选项卡修复了此错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2100448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档