【发布时间】:2012-11-13 11:32:36
【问题描述】:
有一个小问题。我有 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 没有添加。 libstdc++-6.dll 在 original.exe 所在的文件夹中
谢谢
【问题讨论】:
-
我不知道导出损坏名称的可移植库如何,但答案类似于“不是非常”,特别是如果 DLL 是用一个编译器构建的,而消费代码是由另一个编译器构建的.如果您以这种方式混合和匹配二进制文件,您可能会遇到问题。
-
TY,在第一台机器上存在简单的不匹配,即在 mingw/bin/ 该 DLL 的较新版本中,在将其替换为编译机中的那个后,它可以完美运行......所以我猜,首先它在路径a中搜索DLL,然后在与run.exe相同的目录中搜索,不是吗?