首先,我可能找到了一个解决方案,但是(!)我不知道它为什么会起作用。所以我希望有人可以解释会发生什么,并指出一个更好/正确的解决方案。此外,这可能会帮助其他人。
我有Windows 7 64位操作系统,带有Eclipse Kepler 64bit,java版本1.7.0_25 64位(通过jre-7u25-windows-x64.exe)和最新版(不知道怎么找出哪一个)mingw版本(通过mingw-get-inst-20120426.exe)今天安装。我尝试运行标准的Hello World Eclipse示例项目:
#include <iostream>
using namespace std;
int main() {
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
发布配置工作得很好。但是,调试配置崩溃。我得到的唯一错误消息来自Windows,说“test.exe不再起作用”(德语错误消息“test.exe funktioniert nicht mehr”) - 没有任何进一步的信息。
因为谷歌搜索只找到相反的情况 - 调试工作,发布崩溃 - 我绝望,只是尝试了其他问题的各种修复。 This one帮助,这是相关部分的副本:
右键单击您的项目。选择“属性”。 选择新窗口左侧的“运行/调试设置”属性。 在右侧窗口中,单击您的可执行文件以突出显示(即 - Test.exe),然后单击“编辑”。 在“环境”选项卡中,单击“新建” 名称:路径 值:MinGW bin目录的路径。 (对我来说这是:C:\ devcore \ MinGW \ bin) 在所有窗口上单击“确定”关闭。
有了这个,我可以在调试和发布配置中运行Hello World示例。然而,我还没有尝试过更复杂的程序,所以我不确定这是否能真正解决问题。
如果您需要任何进一步的信息,请随时询问。
编辑:
1)我忘了提到我将mingw \ bin文件夹添加到“path”-system变量中
2)我尝试将“Name:path,value:... \ mingw \ bin”添加到Preferences-&gt; C / C ++ - &gt; Build-&gt; Environment-&gt;添加。这没有用。
EDIT2:
以下是否正确?
该程序在运行时需要一些mingw-dll。对于发布配置,这直接链接到.exe,但是对于调试版本,我需要指定Eclipse可以找到minGW的位置 - 我需要在那个地方指定,因为我尝试的其他选项仅在编译期间使用。登记/>
如果是这样,为什么eclipse本身不能这样做呢?毕竟,它只是hello world的例子,我知道我过去不需要这样做。
答案 0 :(得分:0)
(在评论中回答。转换为社区wiki答案。见Question with no answers, but issue solved in the comments (or extended in chat))
OP写道:我想我找到了它:
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\test.o" "..\\src\\test.cpp" and g++ -o test.exe "src\\test.o"
@Belga写道:
尝试传递开关
-static-libgcc
和-static-libstdc++
作为第二个命令。Eclipse应该有一种方法可以在项目的某个位置为给定的配置添加选项和开关。