相关疑难解决方法(0)

"多个目标模式"Makefile错误

我的makefile因错误而失败:

Makefile:34: *** multiple target patterns.  Stop.
Run Code Online (Sandbox Code Playgroud)

它究竟意味着什么,我该如何解决这个问题呢?

(GNU制作手册,由Captain Obvious编写,没有帮助).


找到了.我有形式的规则:

$(FOO): bar
Run Code Online (Sandbox Code Playgroud)

FOO从shell命令设置的地方,用包含冒号的错误消息污染了它.

makefile

71
推荐指数
2
解决办法
10万
查看次数

如何在Windows上添加库包括NetBeans和gcc的路径?

如何在Windows上添加库包括NetBeans和gcc的路径?

使用:

  • NetBeans 7.1.2
  • MinGW(mingw-get-inst-20120426.exe)
  • gcc 4.7.0

c c++ windows gcc netbeans

9
推荐指数
1
解决办法
3万
查看次数

Eclipse + CDT + Cygwin:你如何修复"多个目标"错误?

更新1:我原来的帖子太长,模糊了真正的问题.我已经发现在调用Make时究竟是什么导致了"多个目标"错误.

更新2:我发现这个"多目标"错误是由GNU Make版本3.8.1引起的(参见here1here2).GNU Make 3.8.1是与Cygwin一起发布的当前GNU Make.总结链接:旧的v3.8.0处理窗口路径很好,而较新的v3.8.1报告了Windows路径的错误(也许它是来自FSF的被动攻击性攻击?).


当您在Eclipse + CDT + Cygwin中启动一个没有外部包含/库的新项目时,一切都适合我.

一旦我尝试使用外部包含/库,我就会收到"多个目标"错误.

以下是在Windows + Eclipse + CDT + Cygwin上重现错误所需的步骤:

  1. 项目属性 - > C/C++ Build - > Settings - > Tool Settings - > Cygwin C Compiler - > Includes - > Include Paths(-I) - > Add Button - > Pick directory - >"C:\ dir1\dir2"
  2. 我点击了构建.
  3. 它第一次构建时没有错误.
  4. 我再次点击构建...我得到构建错误"多个目标.停止.".
  5. 我点击错误.

Eclipse提取了一个makefile.当make从外部库中看到新包含文件的Windows路径时,会发生错误:

# NOTE: Error happens when the first "C:/" occurs
src/main.d src/main.o: ../src/main.c C:/dir1/dir2/ExternalLibrary.h
Run Code Online (Sandbox Code Playgroud)

Make得到错误"Multiple targets"的原因是因为它看到了":",它是Make语法的一部分,用于声明目标.如果有两个":",则输出错误,因为它不知道如何处理"多个目标".


我无法手动编辑makefile,因为它们会立即重新生成并被覆盖[UPDATE:by Eclipse-CDT].鉴于我无法手动编辑makefile. …

c eclipse cygwin makefile eclipse-cdt

5
推荐指数
1
解决办法
6322
查看次数

标签 统计

c ×2

makefile ×2

c++ ×1

cygwin ×1

eclipse ×1

eclipse-cdt ×1

gcc ×1

netbeans ×1

windows ×1