Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hello World项目将不编译 我最近开始使用Eclipse CDT开发C++应用程序。 我下载了Eclpse-Kepler CDT包,它正确地打开了,但是当我创建一个简单的hello-world应用程序时,我得到了一个找不到的errorBinary,即使在构建项目之后也是如此_C++_Eclipse_Gcc_G++_Eclipse Cdt - Fatal编程技术网

Hello World项目将不编译 我最近开始使用Eclipse CDT开发C++应用程序。 我下载了Eclpse-Kepler CDT包,它正确地打开了,但是当我创建一个简单的hello-world应用程序时,我得到了一个找不到的errorBinary,即使在构建项目之后也是如此

Hello World项目将不编译 我最近开始使用Eclipse CDT开发C++应用程序。 我下载了Eclpse-Kepler CDT包,它正确地打开了,但是当我创建一个简单的hello-world应用程序时,我得到了一个找不到的errorBinary,即使在构建项目之后也是如此,c++,eclipse,gcc,g++,eclipse-cdt,C++,Eclipse,Gcc,G++,Eclipse Cdt,我给你看看我的控制台显示什么 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

我给你看看我的控制台显示什么

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)
我尝试使用两个跨GCC和Linux GCC的工具链运行该程序


有人能告诉我出了什么问题吗?

经过一系列不同编译器的测试,OP中给出的命令似乎工作正常。这似乎是一个现实世界与现实世界不同的例子

解决方案是按照编译器的指示执行,即添加-M或-MM标志

为此,请转到项目->属性->C/C++构建->设置->工具设置->编译器->杂项,并将-M或-MM添加到其他标志中

下图说明了这一点:


作为旁注,-MF标志和-MT标志之间缺少空格,但这似乎不是问题的原因。

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