如何使用Visual Studio 2015创建一个可以从我的桌面运行的.exe

时间:2016-03-29 15:47:16

标签: c++ opengl visual-studio-2015

我使用OpenGL,GLFW,C / C ++编写了一款游戏。我使用第三方库,如SOIL和irrKlang。我使用Microsoft Visual 2015.调试和发布版本都可以从visual studio运行。在属性 - > C ++ - >代码生成 - >运行时库我选择了/ MDd。我确实尝试了其他设置,但发布版本不适用于任何其他设置。我的所有.dll都保存在发行版和调试文件夹中。 但是,当我转到我的发布文件夹并将那里找到的.exe复制并粘贴到我的桌面上时,它就不再运行了。我一直收到一条消息,说明缺少irrKlang.dll。有人可以解释如何让我的游戏的独立.exe启动并运行吗?

2 个答案:

答案 0 :(得分:3)

这里有两件事。首先,.exe是包含应用程序入口点的可执行文件。所以这确实是你需要的第一件作品。但是,允许您的应用程序依赖于静态链接到它的代码,而是动态 - 这种动态链接代码仅在运行时加载。这些运行时代码库称为DLL(“动态链接库”)。

如果您的应用程序依赖于DLL,它将在{}运行时look for that DLL。如果找不到它,您将看到有关丢失的DLL的消息框。因此,您不仅需要复制.exe文件,还要复制它依赖的所有.dll(以及它们依赖的.d文件)。请注意,您的应用程序链接许多默认系统DLL,例如kernel32,但这些不需要在.exe旁边复制,因为它们总是出现在系统搜索路径中。

现在,第二部分。如果要在未安装Visual Studio的PC上运行应用程序,则需要确保计算机具有VS2015工具链自动链接的C / C ++运行时安装。这些不是您手动复制的DLL;相反,它们有一个redistributable installer,可以在PC上为所有应用程序全局安装它们。您可以使用自己的安装程序运送它。

为了使其正常工作,您希望在Release中仅与/MD链接(调试CRT仅用于调试,并且仅在安装Visual Studio时安装 - 它并不意味着在PC外部运行)。

答案 1 :(得分:0)

本声明:

“调试和发布版本都可以从visual studio运行。在属性 - > C ++ - >代码生成 - >运行时库我选择/ MDd。我确实尝试了其他设置但发布版本不起作用与任何其他人一起。“

让我相信你可能没有第三方图书馆的发布版本。

/ MDd会导致您的应用程序使用MS运行时的调试版本,这意味着项目中的某些内容正在使用或作为调试版本构建。

我使用'depends.exe'应用程序来查看我的可执行文件和DLL的依赖项。它曾经由微软直接提供,但现在似乎得到了第三方的支持。较旧的SDK将拥有它。

http://www.dependencywalker.com/