【问题标题】:Hello World project will not compileHello World 项目无法编译
【发布时间】:2014-11-29 22:24:31
【问题描述】:

我最近开始使用 Eclipse CDT 来开发 C++ 应用程序。 我下载了 Eclpse Kepler CDT 包,它可以正常打开,但是当我创建一个简单的 hello world 应用程序时,我收到一个错误“找不到二进制文件”,即使在构建项目之后也是如此。

我会告诉你我的控制台显示什么

19:54:11 **** Incremental Build of configuration Debug for project HelloWorld ****
make all 
Building file: ../src/HelloWorld.cpp
Invoking: GCC C++ Compiler

g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/HelloWorld.d"-MT"src/HelloWorld.d" -o "src/HelloWorld.o" "../src/HelloWorld.cpp"

cc1plus: error: to generate dependencies you must specify either -M or -MM
make: *** [src/HelloWorld.o] Error 1

19:54:11 Build Finished (took 106ms)

我尝试使用 2 个工具链 Cross GCC 和 Linux GCC 运行程序。

谁能告诉我怎么了?

【问题讨论】:

  • 您使用的是什么编译器版本?你可以将你的makefile的内容添加到问题中吗?正如给定的那样,编译文件的指令似乎适用于 MinGW w64 4.9.1 以及 g++ 4.7.3。作为旁注,-MF 和 -MT 标记之间似乎缺少一个空格,但这似乎不是您出错的原因。
  • 我的编译器版本是4.5.1。 make文件是eclipse默认生成的标准文件。您能否告诉我如何将 -M 或 -MM 选项添加到 eclipse;s 的构建参数?谢谢
  • 据我所知,您不应该这样做。 -MMD 应该没问题。我已经有一段时间没有使用 Eclipse,因为我很虐待狂,更喜欢制作自己的 Makefile。但是,要添加命令行选项,您可以转到 Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> Compiler -> Miscellaneous 并添加 -M 或-MM 到 其他标志。见this screenshot。
  • 我在项目的首选项下添加参数后,代码编译并运行完美:)
  • 很高兴它有帮助。添加为下一个遇到相同问题的人的答案。现在我也可以在将来清理时取消指向屏幕截图的链接而不会搞砸。

标签: c++ eclipse gcc g++ eclipse-cdt


【解决方案1】:

用一堆不同的编译器测试,OP 中给出的命令似乎工作得很好。这似乎是现实世界与应有的不同的情况。

解决办法就是按照编译器告诉我们的去做,就是添加-M或者-MM标志。

为此,请前往 Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> Compiler -> Miscellaneous 并添加 -M 或 -MM 到 其他标志。

下图说明了这一点:

附带说明,-MF 标志和 -MT 标志之间缺少空格,但这似乎不是问题的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 2021-02-21
    • 2019-09-02
    相关资源
    最近更新 更多