【问题标题】:Releasing projects - What to do when I have finished with my C++ project in Eclipse?发布项目 - 在 Eclipse 中完成我的 C++ 项目后该怎么办?
【发布时间】:2014-01-29 13:28:01
【问题描述】:

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

具体来说:

我的项目中有很多文件和文件夹,它们是开发所必需的,但不是执行所必需的!

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

但要执行,我只需要 Debug/ 、 images/ 和 Fonts/

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

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

【问题讨论】:

  • 我怀疑你真的想要来自Release 而不是Debug 的可执行文件。
  • 是的,既然你提到了,我想要 Release 的可执行文件。但是如何产生这样一个可执行文件呢?
  • 我认为您可以在第一时间手动开发一个脚本(在 python、bash 等中)来选择您需要的所有资源,然后将内容从您的 dev 目录结构复制到一个 '客户包”。如果您使用 Eclipse 开发它,也许您可​​以在不关心它的情况下做只是适合的解决方案。

标签: c++ eclipse project setup-project


【解决方案1】:

对于 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++ 项目中为用户提供什么?”那么你应该给他们一个Release版本的你的应用程序。发布意味着“优化且没有调试帮助”,它几乎肯定会比您的调试文件夹可执行文件更快更小。然后按照我上面说的打包。

在 Eclipse 中,您可以从

切换到“Release”(假设是标准 C/C++ Eclipse IDE)
Build Configurations->Set Active->Release

如前所述,Release 版本不包含调试代码(对最终用户无用,并且如果您有不希望用户知道的代码,甚至可能存在危险),它经过优化(调试代码即使在汇编模式下也更容易阅读,也更容易分析错误跟踪),因此可执行文件的大小通常要小得多。


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

【讨论】:

  • 正如我之前提到的,我是 Eclipse 开发的新手,这是我接触到的第一个处于发布阶段的项目。我不知道发布和调试 .exe 应用程序之间的区别!您能否详细说明关键差异以及如何制作发布版本?以及如何更快?
  • 添加了一些行以及如何在 Eclipse 中生成这样的版本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多