在Windows7 64位上使用MinGW的Eclipse CDT-调试配置崩溃[可能已经解决,但仍然很奇怪]

Eclipse CDT with MinGW on Windows7 64bit - Debug configuration crashes [maybe solved, still curious]

本文关键字:解决 64位 Windows7 MinGW 配置 崩溃 调试 CDT- Eclipse      更新时间:2023-10-16

首先,我可能已经找到了一个解决方案,但(!)我不知道它为什么有效。所以我希望有人能解释发生了什么,也许能指出一个更好/正确的解决方案。此外,这可能会帮助其他人。

我今天安装了带有Eclipse Kepler 64位的Windows 7 64位操作系统,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"),但没有任何进一步的信息。

因为谷歌搜索只发现了相反的情况——调试有效,发布崩溃——我很失望,只是尝试了各种解决其他问题的方法。这个有帮助,这里是相关部分的副本:

右键单击您的项目。选择"属性"。选择新窗口左侧的"运行/调试设置"属性。在右侧窗口中,单击可执行文件以突出显示(即Test.exe),然后单击"编辑"。在"环境"选项卡中,点击"新建"名称:PATH值:MinGW bin目录的路径。(对我来说,这是:C:\devcore\MinGW\bin)单击所有窗口上的"确定"关闭。

有了这个,我可以在调试和发布配置中运行Hello World示例。然而,我还没有尝试过更复杂的程序,所以我不确定这是否真的能解决问题。

如果您需要任何进一步的信息,请随时询问。

编辑:
1) 我忘了提到我把mingw\bin文件夹添加到了"path"系统变量中
2) 我尝试将"名称:路径,值:…\mingw\bin"添加到"首选项"->"C/C++"->"构建"->"环境"->"添加"。这无济于事。

第2版:以下内容正确吗
该程序在运行时需要一些mingw dll。对于发行版配置,它直接链接到.exe中,但对于调试发行版,我需要指定Eclipse可以在哪里找到minGW,并且我需要指定确切的位置,因为我尝试的另一个选项只在编译期间使用
如果是这样的话,eclipse为什么不自己做呢毕竟,这只是hello世界的例子,我知道我过去不需要这么做。

(在评论中回答。转换为社区wiki答案。请参阅没有答案的问题,但问题在评论中解决(或在聊天中扩展))

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应该能够为给定的配置在项目中的某个位置添加选项和开关。