在Windows7 64位上使用MinGW的Eclipse CDT-调试配置崩溃[可能已经解决,但仍然很奇怪]
Eclipse CDT with MinGW on Windows7 64bit - Debug configuration crashes [maybe solved, still curious]
首先,我可能已经找到了一个解决方案,但(!)我不知道它为什么有效。所以我希望有人能解释发生了什么,也许能指出一个更好/正确的解决方案。此外,这可能会帮助其他人。
我今天安装了带有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应该能够为给定的配置在项目中的某个位置添加选项和开关。
- 将应用程序从32位移植到64位时出现问题
- 64位机器上的C++内存对齐
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 在 64 位边界上对齐C++结构数组?
- 如何为字符串生成唯一但一致的 N 位哈希(小于 64 位)?
- 在 64 位的 c++ 中运行 mstest 测试
- 在两个线程上读/写 64 位,无互斥/锁定/原子
- 浮点数为 32 位和 64 位二进制表示形式
- 是否有 64 位等效于 GetLastInputInfo / LASTINPUTINFO?
- 所有可能的链接生成器与64位密钥
- WinAPI C++如何从 64 位应用程序加载资源
- 在 c++ 中输出 64 位整数
- 如何解决GMP的32位和64位库之间的冲突
- 在 64 位 Windows 8 机器上使用 Visual Studio 2012 构建 opencv 的绝对解决方案
- 在Windows7 64位上使用MinGW的Eclipse CDT-调试配置崩溃[可能已经解决,但仍然很奇怪]
- IOS集成Unity 4.6.3项目(64位&&IL2CPP)。出现以下这样的错误,如何解决?
- 转换vc++解决方案和项目文件从32位到64位
- 如何构建面向 64 位环境的解决方案