c++ - 发布项目 - 当我在 Eclipse 中完成 C++ 项目后该怎么办?

标签 c++ eclipse project setup-project

我已经完成了我的“Study Timer”项目,该项目是我使用 SDL 和 Eclipse IDE 在 C++ 中开发的,但我是 Eclipse 新手,我想知道一种让 Eclipse 生成新包的方法我的项目可以直接提供给最终用户(类似于发布 Flash 项目后创建 .swf 文件的方式),该项目不包含仅编译所需的各种文件和文件夹!

具体:

我的项目中有许多文件和文件夹,这些文件和文件夹是开发所必需的,但不是执行所必需的!

例如,我的项目包含:src/、headers/、images/、fonts/、Debug/(包含实际的exe文件)、其他编译和运行所需的dll文件...

但是为了执行,我只需要 Debug/、 images/和 Fonts/ !

有没有一种方法可以让 Eclipse 自动生成一个干净的成品项目并提供给最终用户?

可以生成一个不依赖于图像和字体文件夹的新可执行文件,而是将它们嵌入以生成更大的 .exe 文件(类似于包含所有依赖媒体的 .swf) ?

最佳答案

对于 C++ 项目,为了将其部署给最终用户,您只需要可执行应用程序以及任何特定于系统的依赖项(您可以使用 Dependency Walker 检查它们并找到可再发行组件或包的安装程序它们与您的应用程序一起)。请注意,C++ 可执行文件不可跨平台移植,因此如果您为 Windows 编译 exe 文件,它将无法在 Linux 或 Mac 上运行。

然后您可能需要一个安装程序来部署所有内容并将其安装(如果需要安装)到另一个用户的系统中:

免费且易于使用的:http://www.jrsoftware.org/isinfo.php

一个专业的开源但不太好用的:http://nsis.sourceforge.net/Main_Page

商业专业人士:http://www.installshield.com/


不确定:如果您询问“我应该从 Eclipse C++ 项目中为用户提供什么?”那么您应该为他们提供应用程序的发布版本。发布意味着“优化且无需调试帮助”,它几乎肯定会比调试文件夹可执行文件更快、更小。然后按照我上面的描述进行打包。

在 Eclipse 中,您可以切换到“Release”(假设是标准 C/C++ Eclipse IDE)

Build Configurations->Set Active->Release

如前所述,发布版本不包含调试代码(对于最终用户来说毫无用处,如果您希望用户不了解任何代码,甚至可能存在潜在危险),它是优化的(调试代码即使在汇编模式下也更容易阅读,并且更容易分析错误跟踪),因此可执行文件的大小通常要小得多。

enter image description here


问题更新后:为了让您的可执行文件使用嵌入式资源(即引用其自己的二进制可执行文件内的内容,而不是依赖外部文件),您需要一个资源文件来包含并链接到您的可执行文件中。这也取决于编译器(Eclipse 是一个 IDE,它可以帮助您编写代码,但它不是真正创建 exe 文件的程序。它位于 Eclipse 的引擎盖下,Eclipse 与它“传达”要生成的内容)。

关于c++ - 发布项目 - 当我在 Eclipse 中完成 C++ 项目后该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21432518/

相关文章:

c++ - 为什么连续两次类型转换改变一个整数?

c++ - 内存分配 char* 和 char[]

c++ - Qt多重继承出错

java - Subclipse 未上传 JRE

xcode - 将 Xcode 项目添加到 github 存储库?

css - 增加 Visual Studio 的响应时间

c++ - 如何从 C++ vector 中获取 2 个随机(不同)元素

java - 从 eclipse 下载应用程序

android - Genymotion 无法识别 SD 卡上的图像

android - 如何从终端为 native 应用程序创建 android 项目?