MSVCP140.dll丢失

69

我刚刚用C++开发了我的第一个程序,想要把它分享给我的一位朋友。
但他尝试打开exe时出现了错误,提示“MSVCP140.dll缺失”。这个问题是怎么回事,我们该如何解决?

4个回答

95
要么让你的朋友下载运行时DLL(@Kay的答案),要么使用静态链接方式编译应用程序。
在Visual Studio中,转到 项目选项卡 -> 属性 - > 配置属性 - > C/C++ -> 代码生成,在运行库中选择 /MTd 以进行调试模式,选择 /MT 以进行发布模式。
这将导致编译器将运行时嵌入到应用程序中。可执行文件将会更大,但它将无需任何运行时DLL即可运行。

你可以添加数字来说明使用动态链接和静态链接生成的 "hello world.exe" 文件的大小吗? - Kijewski
5
静态链接通常只包括所需内容,而不是库中的全部内容。可执行文件的大小增加取决于使用了多少C运行时。 - Andy
实际上,除非您想调试运行时库,否则没有必要链接到运行时的调试版本。 - user1810087
6
如果您计划重新分发该软件,请勿使用/MTd进行链接。调试运行时未包含在可重新分发的安装程序中。 - Andon M. Coleman

73

1
这是应用程序部署/设置的一部分,应用程序必须处理的事情之一,因为并非所有应用程序使用的内容都内置于操作系统中。请参见部署本机桌面应用程序(Visual C++)。请注意,如果您的应用程序是Windows Store应用程序,则商店会为您部署Visual C++ CRT。 - Chuck Walbourn
1
我在我的电脑上遇到了同样的错误,尽管我已经安装了完整的Visual Studio 2015。可再发行版安装程序却退出,并说已经安装了更新版本。有什么想法吗? - matth
8
请注意,您需要安装与DLL编译方式匹配的vc redist版本(32位与64位),而不是操作系统版本。 - Timothy John Laird

3
通常这意味着您的朋友没有安装Microsoft Visual C++可再发行组件。我当然假设您正在使用VC++,而不是MingW或其他编译器。由于您的朋友也没有安装VS,因此不能保证他已安装可再发行组件。 VC++ Distro

-1

那很可能是C++运行时库。由于它是一个DLL,因此不包含在您的程序可执行文件中。您的朋友可以从Microsoft下载这些库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接