繁体   English   中英

如何在C ++中创建独立的可执行程序?

[英]How to create a Standalone Executable program in C++?

我想创建一个在没有源代码的情况下可以在任何计算机上运行的程序,那怎么可能? 如果我在程序中使用OpenGL,这有什么区别吗?

如果不提供要编译的源代码,就无法在任何计算机上可以用C ++编写程序。

例如,您也许可以使用C ++语言编写程序,然后对其进行编译并构建一个可在Windows x86-64上运行的可执行文件,但是该可执行文件在Linux(或MacOSX)上将不起作用,而在ARM(例如Android手机),除非您考虑使用模拟器

如果使用Visual C ++开发代码,则可能需要考虑两个选项:

  1. 确保您静态链接所有库。
  2. 将与您使用的Visual C ++版本相对应的程序Microsoft Visual C ++ Redistributable Package与目标计算机一起安装在目标计算机上,例如http://www.microsoft.com/download/en/details.aspx?id=5555上的版本 一些生成安装程序的软件会自动为您安装。

通常,您会将目标文件与某种平台相关的加载器链接。 该加载器加载您的对象并执行所有操作以从内存启动它。 通常,您可以告诉编译器链接目标文件并编译blob。 OpenGL是一个功能强大的API,通常以动态链接库的形式分发,并在运行时链接到您的程序。 如果我记得您,只需要确保dll在您想要的位置,然后从开始就将dll加载到程序中即可。

您的C ++程序在运行之前已编译并链接到可执行文件中。 您应该能够在包含项目的文件夹的“ Debug或“ Release子文件夹中找到该可执行文件。

如果您不使用GLUT或类似的库,则OpenGL应该随Windows一起提供,不会造成任何其他问题。 如果您确实使用GLUT,则将.dll文件与应用程序捆绑在一起就足够了。

无论如何,都不需要源代码。

我想创建一个在没有源代码的情况下可以在任何计算机上运行的程序,那怎么可能? 如果我在程序中使用OpenGL,这有什么区别吗?

通过编译并将其链接为可执行文件。 只要您不使用某些解释语言(如Python,Ruby或类似语言),就不可避免地会为您提供可执行文件。 您可能/将遇到的最大问题是对库的依赖。 但是,这些链接也链接到二进制文件中。 因此,您将要发行的只是一个.exe; 还有一些.dll。 通常,您会将其包装在安装程序包中,以部署到最终用户。 安装程序是使用“ NullSoft安装程序系统”(NSIS)之类的东西创建的。

OpenGL本身只是系统库提供的API。 因此,您不随程序一起提供OpenGL,而是希望用户将其安装在系统上(如果安装了图形驱动程序,情况就是这样)。

暂无
暂无

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

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