为C+;生成可部署二进制文件时出现问题+;使用VisualStudio的wxwidgets项目 我在使用VisualStudio为C++ WxWiWET项目生成可部署二进制文件时遇到了麻烦。生成完成后,生成的exe似乎不会安装在任何其他Windows计算机上。 Visual studio 2019用于创建包含openCV的GUI库。我正在尝试创建一个独立的可执行文件.exe,以便在任何其他Windows计算机上运行它,而无需在其中安装visual studio或opencv。 早些时候,当在其他计算机中打开可执行文件时,它给出了一个错误,openCV和wxwidgets缺少dll。因此,我从openCV和wxwidgets bin文件夹的目录中复制了所需的dll。现在,当我尝试执行exe文件时,它显示以下错误。请帮我解决这个问题

为C+;生成可部署二进制文件时出现问题+;使用VisualStudio的wxwidgets项目 我在使用VisualStudio为C++ WxWiWET项目生成可部署二进制文件时遇到了麻烦。生成完成后,生成的exe似乎不会安装在任何其他Windows计算机上。 Visual studio 2019用于创建包含openCV的GUI库。我正在尝试创建一个独立的可执行文件.exe,以便在任何其他Windows计算机上运行它,而无需在其中安装visual studio或opencv。 早些时候,当在其他计算机中打开可执行文件时,它给出了一个错误,openCV和wxwidgets缺少dll。因此,我从openCV和wxwidgets bin文件夹的目录中复制了所需的dll。现在,当我尝试执行exe文件时,它显示以下错误。请帮我解决这个问题,c++,visual-studio-2019,wxwidgets,vcredist,C++,Visual Studio 2019,Wxwidgets,Vcredist,使用动态链接的C/C++运行时(/MD[d])构建的应用程序需要在目标计算机上使用适当的x86(32位)或x64(64位)VC++可再发行文件。它们可以从安装,也可以与应用程序一起包含,以用于 另外,确保只发送非调试(配置=发布)版本 缺少DLL的名称中的'D'后缀代表“Debug”。这些是调试C/C++运行时DLL,由Configuration=debug构建使用,并作为Visual Studio设置的一部分安装。它们将在开发过程中使用,但不得根据以下要求进行部署: 调试版本的应用程序和各种V


使用动态链接的C/C++运行时(
/MD[d]
)构建的应用程序需要在目标计算机上使用适当的x86(32位)或x64(64位)VC++可再发行文件。它们可以从安装,也可以与应用程序一起包含,以用于

另外,确保只发送非调试(配置=发布)版本

缺少DLL的名称中的
'D'
后缀代表“Debug”。这些是调试C/C++运行时DLL,由Configuration=debug构建使用,并作为Visual Studio设置的一部分安装。它们将在开发过程中使用,但不得根据以下要求进行部署:

调试版本的应用程序和各种VisualC++调试DLL不能重新分配。
似乎您正在使用wxWidgets的DLL构建,并将OpenCV构建为DLL

如果您自己不创建DLL,并且您的软件是一个自包含的二进制文件,那么最好使用静态链接wxWidgets和OpenCV

除了@dxiv之外,MS CRT中的所有内容都不能静态链接。这就是为什么强烈建议通过创建安装程序来安装MS CRT,安装程序应该考虑所有这些依赖项


谢谢。

您是否尝试使用
-static
标志编译?谢谢。我是否需要在visual studio中进行任何更改(包括静态标志)?非常感谢您的宝贵建议。我将尝试静态地包括Opencv和wxwidgets。我的另一个疑问是,如果我不使用visual studio,而是使用任何其他软件,我可以简化这个过程吗?@Rahul,你是说其他编译器吗?还是IDE?该过程仍然是一样的-您将需要创建安装程序,它将打包所有必要的CRT和系统库。当然,对于*nix/OSX也是一样的,除了在*nix上,安装程序对于不同的发行版是不同的。你需要用谷歌搜索如何为OSX安装程序。谢谢@Igor。这对我来说是全新的。这就是我在这方面面临一些困难的原因。我将试图找到一种方法,使我的目标操作系统的安装程序。再次感谢。@Rahul,,你的目标操作系统是什么?你好,Igor,我的目标是Windows 10操作系统。我已经解决了这个问题。实际上,我错过了windows可再发行版。一旦我安装了VS redistributables 2019,并将OpenCV和wxWidgets的库文件设置为发布模式,那么exe现在就可以运行了。非常感谢你的帮助。
MSVCP140D.dll
VCRUNTIME140D.dll
VCRUNTIME140_1D.dll
ucrtbased.dll