QT,理解树莓派3的交叉编译

QT, understanding cross-compiling for Raspberry PI3

我正在尝试了解如何为 Raspberry PI3 进行交叉编译。

首先,让我检查一下我是否正确理解了交叉编译的含义:是否为与我正在构建应用程序的机器不同的硬件进行编译?这意味着,例如从 windows 系统构建 linux 应用程序?

其次,我找到的所有教程都需要针对目标平台构建QT。这是因为要构建 QT 应用程序,我需要 QT 库的目标硬件特定构建版本吗?为什么没有预建版本?

第三,我不明白为什么我能找到的所有教程都需要树莓图像。

这些是我找到的一些教程,我发现交叉编译应用程序需要这么长的设置真的很奇怪,我只是想知道我正在尝试做什么(从 Linux machine a raspberry-pi3 QT application) 是那些文章真正描述的内容。

Tutorial 1, Tutorial 2, QT official embedded device page

你是对的,交叉编译是在一种类型的硬件(主机)上构建到运行在不同类型的硬件(目标)上。

如果您愿意使用 Qt 的商业版本,Qt 将提供用于在特定 Raspberry Pi 上进行开发的交钥匙解决方案(Boot to Qt)。通过交钥匙,我的意思是他们拥有用于交叉编译的所有目标工具和为目标正确构建的库等。它并不便宜,而且可能不适合爱好者。

如果您使用 Qt 的开源(免费)版本,您将需要自己完成大部分设置工作。你很难找到为你构建的所有东西的原因主要与两件事有关:分布的大小,以及你正在构建什么(即哪个 Qt 版本为哪个 Raspberry Pi 和哪个 Raspberry Pi Linux 版本和哪些驱动等)。

Raspberry Pi 图像是必需的,因为您需要正确的库来构建 Qt。交叉编译工具需要link针对目标(Raspberry Pi)个图像。

是的,设置Qt交叉编译环境是一个漫长的过程,但是每个Qt版本只需要做一次。设置环境后,在目标 Raspberry Pi 上构建和部署 Qt 应用程序确实非常快速和简单。