【发布时间】:2018-02-05 11:32:42
【问题描述】:
我用 Visual Studio 编写了一个程序,我想与一些朋友分享。但是,当获取包含我的 .exe 文件的调试文件夹的完整文件夹并将其发送给朋友时,它会引发 3 个错误:
缺少 vcruntime140.dll
缺少 MSVCP140D.dll
缺少 urctbased.dll
(顺序可能不正确)
我们尝试在 this 页面上重新安装/更新 Microsoft Visual C++ Redistributable 2017 x64,但没有任何积极结果。
这可能是一个问题,我正在使用 SDL2 库吗?我将 SDL2.lib 复制到他们的 Syswow64 文件夹和 system32 文件夹中,这删除了特定的 .dll 错误,但首先出现了其他错误。
【问题讨论】:
-
选择“静态链接 C++ 运行时库”选项。这样就不会有对可再分发组件的依赖。此外,向您的朋友发送 release 版本。
-
@Bathsheba 静态链接可能是一种解决方案,但如果有其他解决方案,我宁愿不要放大我的程序的大小。由于不是发布版本,错误是否可能仅存在?
-
以
....D.dll结尾的DLLS 是调试版本,不应(不能)重新分发。作为旁注,将 DLL 放入系统目录应该在 Windows XP 之前停止。将它们放入您的应用程序文件夹和/或运行 redist 安装包。如果另一个应用尝试安装/使用不同版本的 SDL2 会发生什么? -
很有可能——尽管您也可以静态链接调试运行时。
-
除了 Richard Critten 的评论:在发布配置中构建您的项目,以便在其他计算机上使用。
标签: c++ windows visual-studio dll visual-studio-2017