【问题标题】:I want to use a <string> library in a c++ project [duplicate]我想在 C++ 项目中使用 <string> 库[重复]
【发布时间】:2015-08-29 15:20:47
【问题描述】:

我想在没有任何 c++ 相关编译器或库的系统上运行我的控制台应用程序 C++ 项目。

每次运行时都会出错。

“程序无法启动,因为您的计算机中缺少 MSVCP110D.dll。请尝试重新安装该问题以解决此问题。”

我相信这是因为我在我的程序中使用了 库。使用 stoi 函数。

如果是这样,我如何在我的项目中添加和使用这个库。 如果没有,还有什么选择?

它是一个简单的程序,使用以下库来读取和写入文件。

#include <iostream> 
#include <fstream> 
#include <string>

我使用 Visual Studio 2012 构建了这个项目。

将要运行此项目的系统使用 win7。

【问题讨论】:

  • 我没试过,不过static linking应该可以解决问题。这篇文章应该会有所帮助:codeproject.com/Articles/85391/…
  • 您正在编译 Debug 配置。 MSVCP110D.dll 不是可再发行的。您需要部署一个链接到 MSVCP110.dll 的 Release 配置。这是一个可再分发的,您需要与您的应用程序一起发布。
  • @user2079303:建议的副本不是。它回答了有关如何在目标机器上获取 MSVCP110.dll 的后续问题。它没有回答这个关于 MSVCP110D.dll 的问题。我建议你撤销你的近距离投票。
  • @IInspectable 该问题回答了如何在 VS 中静态链接标准库,这就是您如何构建依赖于标准库但可以在没有库 dll。这就是 OP 的要求。
  • @user2079303:不,不是。 OP 在问,为什么 CRT 的 Debug 配置不在目标机器上。答案是:因为它不可再分发。静态链接到 Debug 配置并不能解决问题:这违反了许可协议。

标签: c++ string visual-studio-2012 dll libraries


【解决方案1】:

在发布模式下构建程序。

告诉您的客户/客户下载 MSVCP110.dll 文件。或“运行时支持”文件。

或者您使用 Visual Studio 的安装程序来创建安装文件(使用发布模式可执行文件)。

调试模式可执行文件并不打算作为最终产品交付。 “MSVCP110D.DLL”中的后缀“D”表示调试。

【讨论】:

  • 你能帮忙吗,如何获得你所指的发布模式可执行文件。或我可以获得此 MSVCP110.dll 文件/“运行时支持”文件的链接。自从我第一次部署任何项目以来。
  • @DaniyalNasir:How to: Set Debug and Release Configurations。别再无助了。
  • 谢谢伙计,这个链接确实解决了我的问题..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
  • 2014-03-08
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多