【问题标题】:Visual Studio C++ MSVCR100.dll error RuntimeVisual Studio C++ MSVCR100.dll 错误运行时
【发布时间】:2011-12-21 17:57:28
【问题描述】:
我正在 Visual Studio 2010 中开发应用程序。调试和发布可执行文件在我的 PC 上运行良好,但是当我尝试在另一台 PC 上运行它时http://www.rhyous.com/2010/09/16/avoiding-the-msvcr100-dll-or-msvcr100d-dll/
在网上搜索,发现您需要安装 Visual C++ 可再发行组件。
有没有办法构建项目以便不需要 VC++ 可再发行组件?
【问题讨论】:
标签:
c++
visual-studio
visual-studio-2010
dll
【解决方案1】:
如您链接的页面中所述,您可以选择将库静态构建到您的应用程序中,这样可以确保始终包含它们。这是在项目的属性 -> C/C++ -> 代码生成 -> 运行时库中完成的(选择多线程或调试,没有 DLL)。
如果您不想静态链接这些,您可以在程序中包含运行时 DLL;这对于在您的模块之间共享特定版本并且仅您自己的模块很有用,但安装适当的可再发行组件(并允许升级,出于安全原因等)是更可取的。
如果可能,您应该使用系统中的 DLL,以便将来将安全补丁应用到您的程序中。可再发行组件只有几 MB,并且与各种操作系统版本兼容,因此要求用户安装它甚至将其包含在您的安装程序中通常都不是问题。
完全避免使用它们也许是可能的,但不太可行。您必须避免使用它们提供的任何代码,MSVCR 相当于 libc;大多数程序都使用它的功能,它是系统的标准部分。
【解决方案2】:
是的,您可以静态链接 CRT(检查项目设置)。但这会导致更大的可执行文件大小。