【问题标题】:MSVCP140.dll missingMSVCP140.dll 丢失
【发布时间】:2015-10-07 17:37:48
【问题描述】:

我刚刚用 C++ 开发了我的第一个程序,我想和我的一个朋友一起展示它。可悲的是,当他试图打开 exe 时,它​​会收到一条错误消息,上面写着“MSVCP140.dll is missing”。为什么会出现这个问题,他/我该如何解决?

【问题讨论】:

    标签: c++ windows visual-studio-2015


    【解决方案1】:

    要么让你的朋友下载运行时 DLL(@Kay 的回答),要么用静态链接编译应用程序。

    在 Visual Studio 中,转到运行时库上的Project tab -> properties - > configuration properties -> C/C++ -> Code Generation,选择/MTd 为调试模式,/MT 为发布模式。

    这将导致编译器将运行时嵌入到应用程序中。可执行文件会大得多,但它无需任何运行时 dll 即可运行。

    【讨论】:

    • 您能否添加数字“hello world.exe”的动态和静态链接有多大?
    • @Kay 静态链接通常只包括需要的内容,而不是库中的所有内容。可执行文件的大小增加取决于使用了多少 C 运行时。
    • 其实不需要对运行时的调试版本进行链接,除非你想调试运行时库。
    • 如果您打算重新分发软件,请不要使用 /MTd 进行链接。可再发行安装程序中不包含调试运行时。
    【解决方案2】:

    您朋友的 PC 缺少您程序的运行时支持 DLL:

    【讨论】:

    • 这是应用程序在部署/设置过程中必须应对的事情之一,因为并非您的应用程序使用的所有内容都内置在操作系统中。见Deploying Native Desktop Applications (Visual C++)。请注意,如果您的应用程序是 Windows 应用商店应用程序,则应用商店会负责为您部署 Visual C++ CRT。
    • 我的 PC 上出现了同样的错误,即使我安装了完整的 Visual Studio 2015。可再发行安装程序退出,表示已安装较新版本。有什么想法吗?
    • 请注意,您需要安装与您的 DLL 编译方式相匹配的 vc redist 版本(32 位和 64 位),而不是操作系统。
    【解决方案3】:

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

    VC++ Distro

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2017-12-10
        • 1970-01-01
        • 2018-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 2017-06-28
        • 2013-06-18
        相关资源
        最近更新 更多