如何为 imx6 处理器构建 Qt 应用程序?
How to build Qt applications for imx6 processors?
同样的question也以类似的方式被问到,但答案并不令人满意。这就是为什么我想再问一次以下问题:
- 从 Ubuntu 14.04 OS 开始,我应该遵循哪些步骤来在带有 imx6 处理器的嵌入式板上交叉编译和部署我的 Qt GUI 应用程序?
- 除了
Qt Creator
和 Qt 5
之外,是否有任何我必须安装的工具和库?
- 编译后,应用程序的功能是否有任何限制?换句话说,代码在 PC 上做了什么,在板子上也做了?
这是个大问题!
至少你需要一个交叉编译器,它 运行 在你的 Ubuntu 系统上,但为你的 iMX6 (ARM) 生成二进制文件。通常,当您下载 Qt 时,它还会打包一个编译器,该编译器在您下载 Qt 的平台上构建 运行,并为同一平台创建二进制文件。您需要交叉编译,所以您的主机(可能)是 x86,但您的目标是 ARM。因此,您要么需要获得在 x86 上 运行s 并生成 ARM 二进制文件的预构建编译器和库链,要么自己创建一个。对于流行的嵌入式平台(例如 Raspberry Pi),有预构建的工具链,对于开发板,供应商通常提供某种形式的预构建工具链。为了完全控制产品,您通常会自己构建一个完全满足您的产品需求的产品。
如果您是 运行ARM 平台上的 Qt 创建者,则不需要交叉编译器,但是嵌入式环境通常相对较慢且资源有限,因此需要交叉编译。您在一台拥有所有工具的快速机器上交叉编译,运行 在较慢且更受限制的嵌入式系统上生成二进制文件。
然后您必须交叉编译将 运行 在 iMX6 上运行的操作系统,可能包括适合您的嵌入式系统的自定义引导加载程序和驱动程序。
然后您需要针对此 ARM 目标构建 Qt。
然后您可以在此基础上使用 Qt 构建您的应用程序。
我建议您查看 Yocto (https://www.yoctoproject.org/) to build a minimal system to run on the iMX6 along with the partnered cross compiler. Alternatively you could look at crosstool-ng (http://crosstool-ng.org/) 来构建编译器,然后自己在上面手动滚动 O/S。
通常,如果您有来自某个制造商的开发板,他们会为您完成所有这些工作,因此您至少可以在第一天尝试一下!
使用 Yocto 项目并寻找 manufacturer/maintainer 开发板(toradex、NXP/Freescale 等)或 Buildroot 的元层。
对于喜欢使用 Yocto Project 的产品。
同样的question也以类似的方式被问到,但答案并不令人满意。这就是为什么我想再问一次以下问题:
- 从 Ubuntu 14.04 OS 开始,我应该遵循哪些步骤来在带有 imx6 处理器的嵌入式板上交叉编译和部署我的 Qt GUI 应用程序?
- 除了
Qt Creator
和Qt 5
之外,是否有任何我必须安装的工具和库? - 编译后,应用程序的功能是否有任何限制?换句话说,代码在 PC 上做了什么,在板子上也做了?
这是个大问题!
至少你需要一个交叉编译器,它 运行 在你的 Ubuntu 系统上,但为你的 iMX6 (ARM) 生成二进制文件。通常,当您下载 Qt 时,它还会打包一个编译器,该编译器在您下载 Qt 的平台上构建 运行,并为同一平台创建二进制文件。您需要交叉编译,所以您的主机(可能)是 x86,但您的目标是 ARM。因此,您要么需要获得在 x86 上 运行s 并生成 ARM 二进制文件的预构建编译器和库链,要么自己创建一个。对于流行的嵌入式平台(例如 Raspberry Pi),有预构建的工具链,对于开发板,供应商通常提供某种形式的预构建工具链。为了完全控制产品,您通常会自己构建一个完全满足您的产品需求的产品。
如果您是 运行ARM 平台上的 Qt 创建者,则不需要交叉编译器,但是嵌入式环境通常相对较慢且资源有限,因此需要交叉编译。您在一台拥有所有工具的快速机器上交叉编译,运行 在较慢且更受限制的嵌入式系统上生成二进制文件。
然后您必须交叉编译将 运行 在 iMX6 上运行的操作系统,可能包括适合您的嵌入式系统的自定义引导加载程序和驱动程序。
然后您需要针对此 ARM 目标构建 Qt。
然后您可以在此基础上使用 Qt 构建您的应用程序。
我建议您查看 Yocto (https://www.yoctoproject.org/) to build a minimal system to run on the iMX6 along with the partnered cross compiler. Alternatively you could look at crosstool-ng (http://crosstool-ng.org/) 来构建编译器,然后自己在上面手动滚动 O/S。
通常,如果您有来自某个制造商的开发板,他们会为您完成所有这些工作,因此您至少可以在第一天尝试一下!
使用 Yocto 项目并寻找 manufacturer/maintainer 开发板(toradex、NXP/Freescale 等)或 Buildroot 的元层。
对于喜欢使用 Yocto Project 的产品。