【问题标题】:How do I cross-compile a QT application for imx6?如何为 imx6 交叉编译 QT 应用程序?
【发布时间】:2015-08-27 17:51:49
【问题描述】:

如何为飞思卡尔 Hummingboard(imx6(arm)) 交叉编译 QT 应用程序?

周围有一些指南,但我无法成功完成一个。

以下(以及更多)指南在 ./configure 上给我一个编译错误 http://forum.solid-run.com/linux-on-cubox-i-and-hummingboard-f8/qt5-3-on-hummingboard-t2072.html https://community.freescale.com/docs/DOC-94066 当我运行 ./configure 命令时(使用推荐的命令,我已经尝试了很多可能的命令,但没有任何工作)。 QT 使用的所有外部库(zlib、libjpeg、libpng 等)都出现编译错误。所以这是一条死胡同。

我尝试了更多的东西,我什至不记得我尝试过的所有东西,但我没有任何工作。

我正在尝试对 Hummingboard 使用小型分发。这是一个没有窗口管理器的系统,能够运行 QT 应用程序(QT5)。我尝试使用的构建工具是 gcc-linaro-arm-linux-gnueabi,我使用的是 QT Creator。我已经让 QT 在 Hummingboard 上工作,但我无法为它编译任何东西。

【问题讨论】:

  • 实际错误是什么?交叉编译器是否可以从目标文件系统中确定地看到适当的头文件和(ARM 版本的)库? (注意:不是你的主机的)
  • 这是命令的输出:pastebin.com/EW1Hwd5F 我运行这个命令:./configure \ -opengl es2 \ -device linux-imx6-g++ \ -device-option CROSS_COMPILE=/home/bob /Downloads/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/arm-linux-gnueabi- \ -sysroot /media/bob/rootfs/ \ -opensource \ -confirm-license \ -optimized-qmake \ - release \ -make libs \ -prefix /opt/qtpls \ -no-pch \ -nomake examples \ -nomake tests \ -no-xcb \ -eglfs \ -v Sysroot 被设置为带有 mini-distirbution 的挂载镜像跨度>
  • 阅读some documentation。对于 Qt5,您似乎需要一个 -device 来指定 Qt4 中的许多参数。您的编译器错误出现在 x86 文件上,该文件不适用于 ARM 编译器。有些东西是宿主工具(cross-qmake),确实需要 PC 编译器。
  • 感谢您的回复,如您所见,我已将设备设置为“-device linux-imx6-g++”。我有指定很多东西的文件。
  • 你有需要的标题吗?您肯定会拥有这些库,因为如果您使用 yocto 构建了您的 rootfs,那么除非您进行了一些更改,否则您将不会拥有大部分标题。通过传递这些选项 (-qt-zlib -qt-libpng -qt-libjpeg) 而不是使用外部库使用 qt 库

标签: linux qt arm cross-compiling


【解决方案1】:

我终于设法为 IMX6 构建了一个应用程序。这是我为别人做的。这不是最佳解决方案,但它是一个解决方案。

我使用 Buildgear 将 mini-distirbution 构建为操作系统(谷歌它,没有足够的链接与我的声誉)。我将我自己的应用程序附加到这个小型发行版中来构建它。这是通过在 buildfiles/cross/cross-hummingboard 文件夹中创建一个文件夹并添加一个构建文件来完成的(我的看起来像这样http://pastebin.com/bZkJUiry)。在这个文件夹中,我还放置了项目文件的 .tar(包括 .pro)。为了构建它,我将“qt-gui”作为依赖项添加到 fs (buildfiles/cross/cross-hummingboard/fs),方法是将其添加到依赖项列表中。

然后我运行 buildgear build fs,它将创建一个(Tarred)映像,包括我的(工作)qt 应用程序!然后我提取 ./qt-gui 可执行文件并将其 ssh 到 Hummingboard。

当然,这有点麻烦,所以我制作了一个脚本来自动化这一切:http://pastebin.com/jFM6rZyY 它复制和 Tars 源,与 fs 一起编译,提取可执行文件,将文件 ssh 到蜂板并运行它。构建大约需要 3 分钟,但它可以工作,这对我来说很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多