C++ 运行c++-程序

C++ 运行c++-程序,c++,dll,C++,Dll,我编写了一个c++程序,包括使用std::cout和std::cin的。我使用MinGW在windows10上用g++编译器(GNU编译器集合)编译了它。当我使用MinGW的run终端运行程序时,它会工作,但当我尝试使用cmd.exe运行程序或在Windows资源管理器中打开程序时,会出现以下错误: “由于缺少libstdc++-6.dll,程序无法运行。请重新安装程序以解决此问题。” 因为我没有安装我的程序,所以我尝试安装libstdc++-6.dll。我下载了zip格式的文件,但我不知道从哪

我编写了一个c++程序,包括使用std::cout和std::cin的
。我使用MinGW在windows10上用g++编译器(GNU编译器集合)编译了它。当我使用MinGW的run终端运行程序时,它会工作,但当我尝试使用cmd.exe运行程序或在Windows资源管理器中打开程序时,会出现以下错误:

“由于缺少libstdc++-6.dll,程序无法运行。请重新安装程序以解决此问题。”


因为我没有安装我的程序,所以我尝试安装libstdc++-6.dll。我下载了zip格式的文件,但我不知道从哪里解包。这个文件必须在system32中吗?我还有别的问题吗?有人能帮我解决吗?我已经阅读了一个Simlear问题及其答案,但静态LBGCC—静态LBSTDC + +不起作用。

< p>您可能需要编译代码:<代码> g++< /> >选项>代码>静态LBGCC 和<代码>静态LBSTDC++<代码>,以便静态连接C和C++标准库。因此,您不必在Windows路径中安装库,您可以在其他系统上随身携带可执行文件。

根据@kerrek sb do This,这是对这个问题的重复

如果你使用明文编译Windows上的C++代码,你可能会喜欢添加选项——静态LBGCC和静态LISTDC + +,以静态地连接C和C++标准库,从而消除了携带这些副本的任何单独的副本的需要。库的版本管理在Windows中是一个难题,因此我发现这种方法是创建Windows二进制文件的最快速、最干净的解决方案


您可能有路径问题。你能告诉我们在MinGW运行终端中键入:echo$PATH时得到的结果吗?在cmd.exe中键入:echo%PATH%时得到的结果吗?在MinGW中我得到的结果是$PATH,在cmd.exe中我得到的结果是“命令C:\Python27\写错了或找不到”。我还开发了Python程序来解释这一点。@david yes,这是一个路径问题。在MinGW路径(g++.exe所在的位置)中有一些dll文件。我只需要复制其中的三个(LIbSTDC++-6DLL、LIGBC.DLL和LIWINP线程。DLL),并将它们插入到我的C++程序的文件夹中。现在它们运行了,谢谢。我已经阅读了这个问题和答案,但是使用-static选项链接库不起作用:(我阅读了一个类似问题的答案,但当我试图使用此选项编译时,它仍然不起作用。你能用
strings MY.EXE | grep-I\.dll$
DependencyWalker
确认库不会显示为动态链接吗?-------埃塔:尝试使用此选项,使用命令grep和Depende可能更可靠找不到ncyWalker。我理解错了吗?命令字符串在cmd.DependencyWalker中工作并打印一个很长的sth(模块名称?)列表。DependencyWalker是第三方应用程序。或者您可以在字符串输出中搜索*.dll文件。