首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“过程入口点_ZNSt8_detail15_List_node_base7_M_hookEPS0_无法位于动态链接库libstdc-6.dll中。”

“过程入口点_ZNSt8_detail15_List_node_base7_M_hookEPS0_无法位于动态链接库libstdc-6.dll中。”
EN

Stack Overflow用户
提问于 2012-11-13 11:32:36
回答 1查看 13.1K关注 0票数 6

有个小问题。我有c++代码,它链接到一些库。我以前有来自源代码的(原始)exe,这在第一台机器上运行得很好。还有第二台机器,我在第二台机器上处理源代码、修改源代码等等。在第二台机器上,该源代码的构建工作正常,当我复制second.exe并尝试在第一台机器上运行它时,它会显示错误消息。

“过程入口点_ZNSt8_detail15_List_node_base7_M_hookEPS0_不能位于动态链接库libstdc++-6.dll中。”

一件事是,second.exe与original.exe在同一个文件夹中复制,所以它应该会看到ddl‘,因为原来的dll与original.exe在同一个文件夹中,不是吗?它是用MinGW编译的,在NetBeans和项目属性中,有库添加(通过添加库文件),但是libstdc++-6 dll不在added.libstdc++-6。dll位于original.exe所在的文件夹中。

thx

EN

回答 1

Stack Overflow用户

发布于 2012-11-21 16:49:32

我在XP中使用MingW也遇到了类似的问题。

我使用C++编译了一个12 klines项目;它在MSYS中运行良好,但当被称为本机cmd时失败了,声称libstdc++-6.dll中缺少入口点Z_St8_detail15_and_so_on。

相反,以下简单的程序运行在MSYS和cmd中:

代码语言:javascript
复制
#include <iostream>

using namespace std ;

class Hello {
  public:
  Hello() { cout << "Hello !" << endl ; }
} ;

Hello hello ;

int main (void) {}

它必须针对libstdc++ (gcc -o hello hello.cpp -lstdc++)编译,当然,如果省略-lstdc++,编译就失败了。所以这个名字很可能不是唯一的问题。

我在资源管理器中搜索libstdc++-6.dll,发现我的系统上有两个:一个安装在migw32中,另一个以前由一个程序安装,它在目录中保存了自己版本的lib。但是,它修改了路径,以便首先找到它的库!

我在当前的外壳中插入了明明站在路径开头的那条路径。小象:

代码语言:javascript
复制
set PATH=C:\mingw\bin;D:\msys\1.0\local\bin;%PATH%

现在一切都很好!

马丁,我不能在你的评论中写,所以我编辑了我的留言:你是对的。下面将解释windows如何查找DLL:

http://msdn.microsoft.com/en-en/library/7d83bc18%28v=vs.80%29.aspx

干杯

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

https://stackoverflow.com/questions/13360014

复制
相关文章

相似问题

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