msvcp110.dll,我该如何解决它?

时间:2014-01-13 23:39:37

标签: c++ visual-studio-2012

我有以下问题:我使用Microsoft Visual Studio 2012,它将msvcp110.dll添加到我的版本中。我已经在这里和那里阅读了一些帖子,我知道这是由于我同时使用iostream和string并将其链接到我的程序。我在我的电脑上使用它没有问题,但我想向其他人展示。所以我的问题是,尽管对其他人尽可能无痛,我怎么能绕过这个问题,仍然使用一些基本的标准好东西?我知道其他人可以安装Visual Studio Runtime,但这有点痛苦。

1 个答案:

答案 0 :(得分:9)

如果您打算保留自己的应用dynamically-linked,最终用户需要安装Visual C++ Redistributable for Visual Studio 2012

这是提供应用程序的首选方式,原因如下:

  1. 二进制大小 - 您的应用程序二进制文件会更小,因为库函数未链接。
  2. 安全性 - Windows Update可以更新Microsoft可再发行的DLL。如果在其中一个库中发现漏洞,他们可以修复漏洞,并且所有动态链接的程序立即不再容易受到攻击。
  3. 内存占用 - 如果多个进程都使用相同的DLL,则只需将其加载到(只读)内存中一次。所有进程在内存中共享DLL文本的副本,从而减少了进程的总体内存使用量。

  4. 或者,你可以statically link你的可执行文件。通过在Visual Studio中更改程序的构建选项来执行此操作。

    在Visual Studio 2010中,这位于配置属性>下 C / C ++ > 代码生成> 运行时库

    enter image description here

    默认值(/MD / /MDd)告诉VS链接其运行时DLL。

    要静态链接,您要将其更改为其中一个非DLL选项(/MT / /MTd)确保选择正确的Debug / Non-Debug版本(little {{ 1}}在开关中。)


    另见: