在 Mac OSX 下使用 Qt 在 Eclipse CDT 中进行交叉编译

Posted

技术标签:

【中文标题】在 Mac OSX 下使用 Qt 在 Eclipse CDT 中进行交叉编译【英文标题】:Cross-compiling in Eclipse CDT with Qt under Mac OSX 【发布时间】:2011-08-07 19:37:13 【问题描述】:

让我列出我设置的所有内容:

操作系统:Mac OSX - 10.6.8

IDE:Eclipse CDT Indigo

框架:Qt 4.7.2

众所周知,Qt 没有集成到 Mac 上的 Eclipse,所以我在这里使用本教程安装了所有东西: http://www.hyper-world.de/en/2009/05/13/qt-and-eclipse-under-mac-os-x/

我能够毫无问题地将一个简单的程序编译到 MacOS。

这里的问题是我需要将我的应用程序交叉编译到 Windows 和 Linux。但是我是交叉编译的新手,所以我需要一些指导:

    我在这里为 MacOS 使用了这个交叉编译器:http://crossgcc.rts-software.org/doku.php。你们认为这是最好的方法吗?

    我目前使用的是 Eclipse 自动生成的 makefile。 Eclipse 能否在不使用外部 make 构建器的情况下从单个项目生成 3 个不同的操作系统输出?

    如果我将此项目发送给其他开发人员,他可以在 Windows 或 Linux (Ubuntu) 下编译它吗?

    如果可以为该配置或任何带有此配置的 Eclipse 示例项目文件提供分步教程,我将不胜感激。

【问题讨论】:

【参考方案1】:

我可能无法满足您的所有要求。 Buf你听说过cmake吗?如果你在你的项目中使用 cmake,它会在任何地方工作。它为您生成生成文件。看看:http://www.vtk.org/Wiki/CMake_Cross_Compiling.

CMake 找到库的位置,并链接您的代码。关于QT,也可以mocQ_OBJECT文件,让你不用担心。

【讨论】:

【参考方案2】:

我们开发了一个完整的跨平台 Qt 应用程序,并部署在 Windows、OSX 以及 32 位和 64 位 Linux 上。

根据我的经验,没有一种简单的方法可以进行“它只是工作”的跨平台构建。我们所做的实际上是在专用的特定于操作系统的机器上构建(您也可以使用虚拟机)。当然,这也不是一件小事。 CMake 可能是尝试和统一项目的好方法,因此它将在所有平台上构建,并且可能“在旁边”使用 Eclipse(或者如果它与 CMake 一起使用,甚至更好)。我们喜欢使用 Visual Studio,所以我们最终编写了一堆脚本来在其他机器上进行构建。

由于我们需要硬件访问和速度,我们不得不使用 C++/Qt;如果您的需求不同,可以使用更简单的跨平台解决方案,例如 Adob​​e Air。

【讨论】:

以上是关于在 Mac OSX 下使用 Qt 在 Eclipse CDT 中进行交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

在 mac osx 上的 Qt 4.7 中使用光栅图形会导致内存泄漏?

如何使用 Mac OSX 在 Python 中生成线程和初始化 Qt 应用程序

通过 Qt (mac - OSX) 的 AWS 查询没有得到任何结果

Mac OSX 10.9 上的 Qt 部署

使用 Qt 在 OS X/Mac 上构建 C++ 库

在 Mac OSX 上安装 Qt 的调试版本