链接到Visual Studio中的特定.dll文件?

时间:2016-09-15 18:29:39

标签: c++ visual-studio dll compilation

我在Windows 7的Visual Studio 2015中使用OpenGl编写了一个C ++程序。我使用“release”而不是“debug”编译了我的代码。该程序在我的计算机上工作正常,但当我移动到另一台计算机时程序失败。我收到错误消息:

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

我希望我的程序可以在其他计算机上运行,​​这样我就不必安装最新的驱动程序或库以使其正常工作。我的第一台计算机上有MSVCP140D.dll,但我的另一台计算机上只有MSVCP120.dll。如何编译我的代码,使其不需要MSVCP140D.dll,而是使用MSVCP120.dll?

2 个答案:

答案 0 :(得分:2)

首先确保构建设置对于发布版本是正确的:MSVCP140D.dll是Visual Studio 2015运行时的调试DLL;此库的发布版本为MSVCP140.dll

如果您已修复此问题,则可以在要运行程序的目标计算机上安装Visual C++ Redistributable for Visual Studio 2015:这将安装缺少的库。请注意,VC ++可再发行组件不会安装调试库(MSVCP140D.dll),而是安装发布库(MSVCP140.dll)。

另一个选择是使用静态链接到Visual C ++运行时重建程序。打开“项目属性”对话框,然后在"配置属性 - >中打开C / C ++ - >代码生成",字段"运行时库",选择"多线程(/ MT)"。这样,就不需要在目标计算机上安装VC ++可再发行组件。

答案 1 :(得分:1)

您需要安装Visual Studio 2013才能与MSVCP 120 .dll链接(您可以继续使用MSVC 2015,但选择2013作为工具链)。安装MSVC 2013后,您将能够在项目设置中选择它 - >平台工具集。

或静态链接您的应用程序(在代码生成设置中将/MD更改为/MT。然后你的应用程序将不需要任何MSVC DLL运行(但它会变大)。

或者在另一台计算机上安装VC 2015 Redistributable package