Visual C++可执行文件和缺少MSVCR100d.dll

mgi*_*ida 36 windows msvcrt visual-studio-2010 visual-c++ msvcr100.dll

我知道这已在其他地方被问过并回答了,但我遇到了MS Visual Studio 2010的问题.我开发了一个C++可执行文件,但是如果我在没有VC++运行时库的机器上运行Release版本(即,msvcr100d.dll),我得到"程序无法启动因为你的计算机缺少msvcr100d.dll"错误.

这有点奇怪,原因有两个:

  • 为什么要尝试与可再发行的调试版本链接?
  • 我尝试应用此修复程序,将运行时库设置设置为/ MT而不是/ MD(多线程DLL),但这只会使问题变得更糟(如果我手动复制msvcr100d.dll,则表示无法找到msvcp110 .DLL).

如何将运行时库与我的可执行文件打包在一起,以便我可以在没有安装MS VC 2010或可再发行组件的机器上运行它?

我知道包含DLL副本的安全风险因为它不会被更新,但我的目标只是在短期内将此可执行文件发送给几个朋友.

Cod*_*ray 42

如果您正在以"发布"模式进行编译,那么您绝对不需要CRT的调试版本.你可以告诉他们是DLL的调试版本,因为它们以a结尾d.

更重要的是,调试版本不是可再发行版本,因此它不像使用可执行文件"打包"它或者压缩这些DLL那么简单.

检查以确保您正在以"发布"模式编译应用程序的所有组件,并且您正在链接正确版本的CRT和您使用的任何其他库(例如,MFC,ATL等).

,当然需要msvcr100.dll(注意缺少的d后缀)和其他一些如果它们尚未安装.指导您的朋友下载Visual C++ 2010 Redistributable(或x64),或通过构建安装程序自动将其包含在您的应用程序中.