【发布时间】:2012-06-22 16:18:50
【问题描述】:
我在 Windows 7 Starter 32bit 下将 MinGW(最初与 mingw-get-inst-20120426.exe 一起安装)与 Eclipse for C/C++ (Indigo SR2) 结合使用,我刚刚升级到 gcc/g++ 4.7 .0:
mingw-get update
mingw-get upgrade
我修复了 Eclipse 保留旧版本引用 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372#c2) 的问题
但是当我尝试运行一个像这个一样简单的程序时,它崩溃了:
#include <iostream>
#include <cstdlib>
using namespace std;
int main (int argc, char* argv[])
{
cout << "one = " << 1 << "\n";
return EXIT_SUCCESS;
}
当我尝试调试时,问题似乎来自cout这一行:
cout << "one = " << 1 << "\n";
如果我跨过它,Eclipse 会向我发出这个错误信号:
No source available for "libstdc++-6!_ZNSo9_M_insertIlEERSoT_() at 0x6fc868a8"
这是点击“Step Over”该行后的 IDE 屏幕截图:http://i.stack.imgur.com/QexxQ.png
以前同样的程序运行良好,但现在不行了。
我什至创建了一个新项目(我没有触及编译器/链接器选项中的任何内容),但同样的问题仍然存在。
请问有人有解决办法吗?
提前感谢您的帮助:)
【问题讨论】:
-
您的调试器找不到源。也许您的对象/地图文件需要更新?
-
它正在寻找 MinGW 库的源文件。我想也许你正在点击“Step Into”而不是“step over”。如果你愿意,你可以尝试重建标准库,并确保项目正确指向库源文件(如果你有它们......确定你不只是使用 DLL?)。
-
正如我所说,我在 Eclipse 中创建了一个新项目,我编写了程序(与我之前提到的代码完全相同)并单击运行:它崩溃了。我没有做任何其他事情。它可以编译,但是当我运行它时会崩溃。而且,我实际上点击了“Step Over”。
-
嗯,奇怪...您链接的运行时库版本是否与运行时加载的版本不同?
-
我不知道。我怎么知道?
标签: c++ eclipse mingw libstdc++