使用 Visual Studio 2017 发布 C++ 代码 [重复]

Posted

技术标签:

【中文标题】使用 Visual Studio 2017 发布 C++ 代码 [重复]【英文标题】:Release C++ code using Visual Studio 2017 [duplicate] 【发布时间】: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”。 【参考方案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 的丢失错误。

以上是关于使用 Visual Studio 2017 发布 C++ 代码 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用以前版本的 Visual Studio 的 devenv 从 VS2017 测试 Visual Studio 扩展不起作用

使用 Visual Studio 2017 发布 C++ 代码 [重复]

visual studio2017需要安装哪些组件

Visual Studio 2017 使用哪个版本的 SignTool?

在 Visual Studio 2017 中使用 64 位 Visual C++ 工具集

如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013