【问题标题】:Release C++ code using Visual Studio 2017 [duplicate]使用 Visual Studio 2017 发布 C++ 代码 [重复]
【发布时间】:2020-03-07 14:43:49
【问题描述】:

我在 Windows 10 中使用 Visual Studio 2017 编写了一个 C++ 项目。我也在尝试在其他计算机上运行代码。

所以,我尝试将 Release 文件夹复制到另一台 Windows 10 计算机。但是,当我尝试执行 .exe 文件时,它显示错误:缺少 dll:vcruntime140.dll 和 ucrtbased.dll。

请在发布过程中帮助我。

【问题讨论】:

  • 您需要将编译器运行时库与您的应用程序一起分发。搜索“Microsoft Visual Studio Redistributables”。

标签: c++ visual-studio-2017 release


【解决方案1】:

原因是您的应用程序正在动态加载随 Redistributable 包一起安装的 VC 运行时。通常人们可以在没有完整 SDK 的情况下安装 Redistributable 包,但更简单的解决方案是编译您的应用程序以静态加载 C 运行时库。 转到项目设置,然后 C/C++->代码生成并将运行时库从 /MD 更改为 /MT。 /MD 是动态的,/MT 是静态的。

你也可以从这里https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads在你的另一台机器上安装包

【讨论】:

  • 这并不总是一种选择。 1)静态链接使您的可执行文件膨胀。 2)静态链接并不总是可能的。 3) 使用开源库时,静态链接在很多情况下可能违反许可。
  • @JesperJuhl 是的,在某些情况下,这并不总是一种选择。我不是在回答一般情况。我专门针对用户提出的问题回答。我还提供了一个替代方案,为用户提供了一个指向 VC Redistributable 包的链接。
  • @Nina 我尝试安装 VC 可再发行包,但错误仍然存​​在。
  • @NavinRahim 你安装了哪一个?我相信 VC140 适用于 Visual Studio 2015。所以尝试安装 2015 可再发行包。此外,如果软件包不起作用,您可以使用我上面写的说明进行静态编译。
  • @Nina 我安装了 2015、2017 和 2019 C++ 可再发行组件(似乎所有三个版本的包都相同)。我也尝试了提到的静态编译步骤,但两种方法都显示 dll 的丢失错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多