0

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

我有带有 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 文件夹添加到“路径”-系统变量中。
2) 我尝试将“名称:路径,值:...\mingw\bin”添加到 Preferences->C/C++->Build->Environment->Add。这没有帮助。

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

4

1 回答 1

0

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

于 2015-02-04T10:50:56.087 回答