C++ 如何使用visual studio 2015创建可从桌面运行的.exe

C++ 如何使用visual studio 2015创建可从桌面运行的.exe,c++,opengl,visual-studio-2015,C++,Opengl,Visual Studio 2015,我用OpenGL、GLFW、C/C++编写了一个游戏。我使用第三方库,如SOIL和IRKLANG。我使用Microsoft Visual 2015。调试版本和发布版本都可以在VisualStudio中正常运行。在属性-> C++ >代码生成>运行库中,选择/MDD。我确实尝试了其他设置,但发布版本无法与任何其他设置配合使用。所有my.dll都保存在发行版和调试文件夹中。 但是,当我转到我的发行版文件夹,将那里找到的.exe复制并粘贴到我的桌面上时,它就不再运行了。我一直收到一条消息说irrKla

我用OpenGL、GLFW、C/C++编写了一个游戏。我使用第三方库,如SOIL和IRKLANG。我使用Microsoft Visual 2015。调试版本和发布版本都可以在VisualStudio中正常运行。在属性-> C++ >代码生成>运行库中,选择/MDD。我确实尝试了其他设置,但发布版本无法与任何其他设置配合使用。所有my.dll都保存在发行版和调试文件夹中。
但是,当我转到我的发行版文件夹,将那里找到的.exe复制并粘贴到我的桌面上时,它就不再运行了。我一直收到一条消息说irrKlang.dll不见了。有人能解释一下如何启动并运行我的游戏的独立.exe吗?

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

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

现在是第二部分。如果要在未安装Visual Studio的PC上运行应用程序,则需要确保计算机具有VS2015工具链自动链接到的C/C++运行时。这些不是您手动复制的DLL;更确切地说,有一个适用于他们的解决方案,可以在PC上为所有应用程序全局安装它们。您可以将其与自己的安装程序一起提供

要使其正常工作,您只需在发行版中链接到
/MD
(调试CRT仅用于调试,并且仅在安装Visual Studio时安装--它不打算在您的PC之外运行)。

此语句:

“调试版本和发布版本都可以从VisualStudio运行。在Field-”C++ > >代码生成>运行库中选择/MDD。我确实尝试过其他设置,但是版本不会与任何其他版本一起工作。 这让我相信也许你没有第三方库的发布版本

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

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


不能与任何其他
一起使用什么?PC?通常的方法是创建安装程序,安装所有依赖的DLL,或者确保驱动器上有它们,将所有依赖的DLL放入exe不是一个好主意,因为可能有很多。或者,如果它们是常用的软件包,您也可以将它们安装在系统中并查看系统目录(认为值得添加).谢谢你的帮助。我在桌面上创建了一个文件夹,并将.exe粘贴到该文件夹中,我还将.dll粘贴到同一文件夹中。当我运行它时,应用程序不再抱怨缺少dll。那部分已经解决了!相反,我现在遇到了另一个bug,但这是另一个问题。。。。。