9

如何在 Qt 上交叉编译我的应用程序。至于每个项目

我需要两个版本

1)。在 Qvfb 和 i386 架构的计算机上运行

2)。在具有 Linux 帧缓冲区和 ARM 架构的设备上运行

我已经为设备和 Qvfb 编译了 Qt。我能够在两个平台上运行示例,但是如何交叉编译我的应用程序。我希望这两个输出都保留在不同的目录中,这意味着 i386 的输出保留在 output-i386 平台中,而 ARM 的输出保留在 output-ARM 目录中。

我正在为嵌入式 Linux 使用 Qt 4.6。

4

3 回答 3

4

您可以简单地DESTDIR在您的.pro文件中设置。请参阅qmake 变量参考。您可能还想调整变量OBJECTS_DIRUI_DIR和。MOC_DIRRCC_DIR

于 2009-12-19T12:25:24.067 回答
2

Qt 从 mkspec 文件中获取所有平台特定的详细信息。

使用 qmake 的 -spec 命令行参数指定 mkspec 文件到 qmake 进行交叉编译。

在 mkspec 文件中有许多定义,您可以通过这些定义为不同平台自定义编译,例如我可以使用DESTDIR将最终输出文件发送到特定目录,使用 OBJECTS_DIR将对象文件发送到特定目录。MOC_DIR将 moc 生成的文件发送到特定的目录,UI_DIR将 uic 生成的头文件和 cpp 文件发送到特定的目录。

于 2009-12-19T11:42:31.347 回答
2

本文末尾向您展示了如何在工作目录中更改 qmake(您需要先运行make destclean)。这另一篇文章概述了用于嵌入式 Linux环境的基本 Qt,只是为了给你一个大图景。

于 2009-12-19T12:09:55.417 回答