繁体   English   中英

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

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

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

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

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

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

为了实现这一点,您希望在Release中仅与/MD链接(调试CRT仅用于调试,并且仅在安装Visual Studio时安装 - 它不适合在PC外部运行)。

这个说法:

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

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

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

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

http://www.dependencywalker.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM