有个小问题。我有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
发布于 2012-11-21 16:49:32
我在XP中使用MingW也遇到了类似的问题。
我使用C++编译了一个12 klines项目;它在MSYS中运行良好,但当被称为本机cmd时失败了,声称libstdc++-6.dll中缺少入口点Z_St8_detail15_and_so_on。
相反,以下简单的程序运行在MSYS和cmd中:
#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。但是,它修改了路径,以便首先找到它的库!
我在当前的外壳中插入了明明站在路径开头的那条路径。小象:
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
干杯
https://stackoverflow.com/questions/13360014
复制相似问题