我已经构建了一个使用C++11特性和winsocket的应用程序。我使用windows 10和Visual C++ 2015编译器构建了应用程序。在Win10机器上,它运行良好。在Win7机器上会出现一个弹出窗口,说明文件ucrtbase.dll丢失。
我在网络上做了一些研究,发现微软对CRT做了相当大的改变,因此重新命名了一些dll。这些dll本身在Win7上是不可用的。
有什么方法可以独立于这个库构建我的应用程序吗?我想将应用程序同时发送给Win7和Win10用户。
谢谢
发布于 2016-07-26 07:00:08
正如对您的问题的评论所述,您可以在项目的/MT设置中使用Configuration Properties -> C/C++ -> Code Generation -> Runtime Library标志静态链接CRT。
如果这不是项目的选项,则可以安装CRT再发行版。
在C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\1033中,您可以找到三个文件:
vcredist_arm.exevcredist_x64.exevcredist_x86.exe这些包包含此版本的Visual的CRT,设计用于安装在需要运行软件的计算机上。
在运行应用程序之前,在目标系统上安装适当的可再发行版。例如,如果您的应用程序是32位,请安装vcredist_x86.exe。对于64位,请安装vcredist_x64.exe。
通常,当您为您的软件创建安装程序时,您也会捆绑这些文件,并在安装过程中运行它们。
https://stackoverflow.com/questions/38582646
复制相似问题