首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有可用于"libstdc++-6!_ZNSo9_M_insertIlEERSoT_() at 0x6fc868a8“的源代码

没有可用于"libstdc++-6!_ZNSo9_M_insertIlEERSoT_() at 0x6fc868a8“的源代码
EN

Stack Overflow用户
提问于 2012-06-23 00:18:50
回答 2查看 2K关注 0票数 2

我在Windows7 Starter 32位下使用MinGW (最初与mingw-get-inst-20120426.exe一起安装)和Eclipse for C/C++ (Indigo SR2),我刚刚升级到了gcc/g++ 4.7.0:

代码语言:javascript
复制
mingw-get update
mingw-get upgrade

我修复了Eclipse保留旧版本的引用( https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372#c2 )的问题。

但是当我尝试运行一个像这样简单的程序时,它崩溃了:

代码语言:javascript
复制
#include <iostream>
#include <cstdlib>
using namespace std;
int main (int argc, char* argv[])
{
    cout << "one = " << 1 << "\n";
    return EXIT_SUCCESS;
}

当我尝试调试时,问题似乎来自cout行:

代码语言:javascript
复制
cout << "one = " << 1 << "\n";

如果我跨过它,Eclipse向我发出这个错误的信号:

代码语言:javascript
复制
No source available for "libstdc++-6!_ZNSo9_M_insertIlEERSoT_() at 0x6fc868a8" 

下面是单击"Step Over“该行之后的集成开发环境的屏幕截图:http://i.stack.imgur.com/QexxQ.png

同样的程序以前运行得很好,但现在不行了。

我甚至创建了一个新项目(我没有触及编译器/链接器选项中的任何内容),但仍然存在相同的问题。

有谁有解决方案吗?

提前感谢您的帮助:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-24 18:03:29

找到了!:D

正如Dennis所提到的,运行时dll似乎与链接时使用的dll不同。

实际上,Eclipse链接到了C:\mingw\bin\libstdc++-6.dll,但在执行时,使用了另一个(即mingw:\Program Files\gnuplot\bin\libstdc++-6.dll >_<),因为 (我很久以前安装的,顺便说一句,这是一个很好的软件;)将其安装目录添加到路径(即使C:\mingw也在路径中)(它还添加了一些其他环境变量)

我非常生气,我删除了所有与gnuplot lol相关的东西(即path中的PATH,它的环境变量,然后我卸载了程序)。我还删除了Cygwin (尽管它不在路径中,但我很长时间没有使用它了,所以……)

然后,我升级到了4.7

代码语言:javascript
复制
mingw-get update
mingw-get upgrade

我还做了关于Eclipse的事情

现在一切都好了:

代码语言:javascript
复制
one = 1

:)

代码语言:javascript
复制
C:\Windows\System32>gcc --version
gcc (GCC) 4.7.0
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


C:\Windows\System32>g++ --version
g++ (GCC) 4.7.0
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果有帮助,我使用来确定可执行文件使用的运行时动态链接库(只需在Dependency Walker中加载exe,然后右键单击LIBSTDC++-6.DLL >属性)

票数 4
EN

Stack Overflow用户

发布于 2015-01-28 19:22:44

好吧,我知道这个问题回答得很好,但我只想分享我的经验,因为我被它迷惑了很长一段时间(是的,我很久没有用C++编码了,哈哈)

我意识到发生这种情况是因为我在安装JAVA eclipse时安装了MinGW 4.8.1并删除了旧版本(可能是4.6.2,我记不清了),而dll却找不到。

我没有在Path中更改任何内容。我所做的只是重新安装MinGW,单击并单击,然后更新它提供的所有库文件,然后cin & cout工作。好吧,我真的不知道为什么,这是怎么回事,但是现在它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11160179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档