【问题标题】:exe generated with Visual Studio creates dll errors on other pc's使用 Visual Studio 生成的 exe 在其他电脑上创建 dll 错误
【发布时间】: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


【解决方案1】:

在构建项目之前选择 Realese 选项,然后将整个 Release 文件夹发送给您的朋友应该可以解决此问题。

【讨论】:

  • 不——不包括 VC++ DLL 的
  • @MSalters 你是对的。它只会摆脱特定于调试的 DLL 问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 2015-08-04
  • 1970-01-01
  • 2011-10-26
  • 2016-01-06
相关资源
最近更新 更多