如何使用visual studio 2015创建一个.exe,我可以在桌面上运行

How to create a .exe with visual studio 2015 that I can run from my desktop

本文关键字:exe 一个 我可以 运行 桌面 studio visual 何使用 2015 创建      更新时间:2023-10-16

我用OpenGL、GLFW、C/C++编写了一个游戏。我使用第三方图书馆,如SOIL和irrKlang。我使用Microsoft Visual 2015。调试版本和发布版本都可以在visualstudio中正常运行。在properties->C++->Code Generation->Runtime Library I selected/MDd中。我确实尝试了其他设置,但发布版本无法与任何其他设置配合使用。我的所有.dll都保存在发布和调试文件夹中。然而,当我转到我的发布文件夹并将在那里找到的.exe复制粘贴到桌面上时,它就不再运行了。我一直收到一条消息,说irrKlang.dll不见了。有人能解释一下如何启动并运行我的游戏的独立.exe吗?

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

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

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

为了实现这一点,您只需要在Release中链接/MD(调试CRT仅用于调试,并且仅在安装Visual Studio时安装——它不应该在您的PC之外运行)。

此语句:

"在visual studio中,调试和发布版本都可以运行。在属性->C++->代码生成->运行库中,我选择了/MDd。我确实尝试了其他设置,但发布版本无法与任何其他设置配合使用。"

让我相信,也许您没有第三方库的发布版本。

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

我使用"dependent.exe"应用程序来查看可执行文件和DLL的依赖关系。它过去是由微软直接提供的,但现在似乎通过第三方提供支持。旧的SDK会有它。

http://www.dependencywalker.com/