在 Windows7 64 位上使用 MinGW 的 Eclipse CDT - 调试配置崩溃 [也许已解决,仍然很好奇]

Posted

技术标签:

【中文标题】在 Windows7 64 位上使用 MinGW 的 Eclipse CDT - 调试配置崩溃 [也许已解决,仍然很好奇]【英文标题】:Eclipse CDT with MinGW on Windows7 64bit - Debug configuration crashes [maybe solved, still curious] 【发布时间】:2013-07-28 00:27:03 【问题描述】:

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

我有带有 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”) - 没有任何进一步的信息。

因为谷歌搜索只发现了相反的情况 - 调试工作,发布崩溃 - 我很绝望,只​​是尝试了各种修复其他问题。 This one 帮忙,这里是相关部分的副本:

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

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

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

编辑: 1) 我忘了提到我将 mingw\bin 文件夹添加到“路径”-系统变量中。 2) 我尝试将“名称:路径,值:...\mingw\bin”添加到 Preferences->C/C++->Build->Environment->Add。这没有帮助。

编辑2: 以下是正确的吗? 该程序在运行时需要一些 mingw-dll。对于发布配置,这直接链接到 .exe,但对于调试版本,我需要指定 Eclipse 可以在哪里找到 minGW - 我需要在那个地方指定,因为我尝试的另一个选项仅在编译期间使用。如果是这样,为什么 eclipse 不自己做这个? 毕竟这只是 hello world 的例子,我知道过去我不需要这样做。 p>

【问题讨论】:

听起来您缺少运行添加到路径的目录中的程序所需的 dll。 但是为什么问题只出现在调试配置中呢?顺便说一句,我已将 mingw\bin 文件夹添加到路径变量中。我可能应该将其添加到问题中。 调试版本可能需要与发布版本不同的 dll 文件。根据您引用的解决方案,当您从 Eclipse 运行时,它可能使用与在 Eclipse 外部运行时不同的环境,因此您的路径可能不会被使用。 当我在 Eclipse 之外运行 .exe 时,我得到完全相同的结果 - 发布配置有效,调试配置(没有更改)无效。 你能显示用于构建项目的编译和链接命令吗?这很可能暗示真正的问题是什么。 【参考方案1】:

(在 cmets 中回答。转换为社区 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 应该有一种方法可以在项目的某处为给定的配置添加选项和开关。

【讨论】:

以上是关于在 Windows7 64 位上使用 MinGW 的 Eclipse CDT - 调试配置崩溃 [也许已解决,仍然很好奇]的主要内容,如果未能解决你的问题,请参考以下文章

求解win7 64位上安装Qt4.8.6 + Qt Creator3.1.0 + mingw ??

我怎么知道 R 是在 64 位还是 32 位上运行?

VB6 IDE 是不是在 Windows 7 / 8 / 10 64 位上运行?

在 Win 7 64 位上使用 ScardConnectA 挂起

在 windows 64 位上编译和安装 openssl

SWIG 和 Mingw-64 与 Python 一起使用……不是有效的 Win32 应用程序