我构建了一个使用C ++ 11特性和winsocket的应用程序。 我使用Windows 10和Visual C ++ 2015编译器构建了应用程序。 在Win10机器上运行正常。在Win7机器上弹出一个弹出窗口,说明缺少文件ucrtbase.dll。
我在网上做了一些研究,发现微软对CRT进行了很大的改动,因此重新命名了一些dll。这些dll本身在Win7上不可用。
有没有办法从这个库中独立构建我的应用程序?我想将应用程序发送给Win7和Win10用户。
谢谢
答案 0 :(得分:5)
正如您对问题的评论所说,您可以使用项目Configuration Properties -> C/C++ -> Code Generation -> Runtime Library
设置中的/ MT标记静态链接CRT。
如果这不是您项目的选项,则可以改为安装CRT可再发行组件。
在C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\1033
中,您会找到三个文件:
vcredist_arm.exe
vcredist_x64.exe
vcredist_x86.exe
这些包含此版本Visual Studio的CRT的软件包,旨在安装在需要运行软件的计算机上。
在运行应用程序之前,在目标系统上安装适当的可再发行组件。例如,如果您的应用程序是32位,请安装vcredist_x86.exe
。对于64位,请安装vcredist_x64.exe
。
通常,当您为软件创建安装程序时,也会捆绑这些文件,并在安装过程中运行它们。