Qt4.8.6 Embedded Linux 的编译与移植

本文记录了在Ubuntu 12.04环境下,使用arm-linux-gcc-4.3.2交叉编译Qt4.8.6并移植到飞凌ok6410开发板的过程。在编译中解决了缺失链接库和`__sync_sub_and_fetch_4`未定义的问题。移植后,通过设置环境变量和解决tslib兼容性问题,使Qt程序能在开发板上运行。
摘要由CSDN通过智能技术生成

        最近买了个飞凌ok6410 的开发板,于是在其中搭建qt4.8.6运行环境。费了两三天时间,主要还是对linux系统的生疏,在一些问题上徘徊很久,在这里做一些过程笔记。烧写ARM-Linux系统,根据飞凌官方的用户手册成功为开发板烧写了U-boot、kernel3.0.1、以及rootfs.yaffs(均由飞凌官方提供)

编译环境:

PC:Ubuntu12.04 LTS,Vmware Workstation 10.0.5 build-2443746

Qt:4.8.6 qt-everywhere-opensource-src-4.8.6.tar.gz

tslib:未使用开发板提供的tslib1.4

交叉编译器:arm-linux-gcc-4.3.2


编译准备:

1.依赖包安装

纯净版的Ubuntu没有g++需要先安装:

apt-get install g++

另外很多参考资料中安装如下几个依赖包:libX11-dev libXext-dev libXtst-dev,虽然不知道具体依赖关系,安装上总不会错。命令:

apt-get install libX11-dev libXext-dev libXtst-dev

2.交叉编译器:

        最开始采用arm-linux-gcc-4.4.3版本交叉编译qt4.8.6的过程十分顺利,但将库移植到ok6410开发板后,运行使用qt4.8.6编译的程序,报错:GLIBC2.9 not found,经过多番查实,主要问题在于飞凌官方提供的文件系统所使用的glibc(2.8)与Ubuntu12.04的glibc(2.15)的版本不匹配,于是试图去升级开发板glibc版本,但水平有限无果(如果没有把握自己定制内核、文件系统,而且时间紧迫的情况下,不建议去折腾,学习目的除外)。最后交叉编译器使用的是4.3.2版本

3.关于tslib版本的几点说明:

        最开始使用的是开发板提供的tslib1.4,ts

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Ubuntu 20.04 LTS 上交叉编译 Qt 4.8.6 并将其部署到目标平台 Linux/imx6ull 上,您需要执行以下步骤: 1. 安装交叉编译工具链 您需要安装适用于 imx6ull 平台的交叉编译工具链。您可以从您的硬件供应商或开发板制造商处获得该工具链。安装工具链后,请确保将其添加到系统 PATH 环境变量中。 2. 下载 Qt 4.8.6 源代码 您可以从 Qt 官方网站下载 Qt 4.8.6 的源代码。请注意,这是一个相对古老的版本,因此您可能需要进行一些修改才能使其与最新版本的 Ubuntu 兼容。 3. 配置交叉编译环境 在终端中,切换到 Qt 4.8.6 源代码目录并执行以下命令: ``` ./configure -embedded arm -xplatform linux-arm-gnueabi-g++ -no-gcc-sysroot -no-cups -no-largefile -no-accessibility -no-sql-sqlite -no-qt3support -no-opengl -no-openvg -no-xsync -no-xcursor -no-xinerama -no-xinput -no-xkb -no-xrandr -no-xrender -no-xshape -no-xkbcommon -no-xxf86vm -no-sm -no-xvideo -no-xlib -no-nas-soundserver -no-glib -no-dbus -no-separate-debug-info -no-webkit -no-script -no-scripttools -nomake demos -nomake examples -prefix /usr/local/qt4.8.6-arm ``` 此命令将配置 Qt 4.8.6交叉编译环境,以生成适用于 imx6ull 平台的二进制文件。请注意,此命令中的选项可能需要根据您的具体情况进行修改。 4. 编译 Qt 4.8.6 在终端中,执行以下命令以开始编译 Qt 4.8.6: ``` make ``` 请注意,此命令可能需要一些时间才能完成。 5. 安装 Qt 4.8.6 在终端中,执行以下命令以安装 Qt 4.8.6: ``` sudo make install ``` 此命令将 Qt 4.8.6 安装到 /usr/local/qt4.8.6-arm 目录中。 6. 部署 Qt 4.8.6 到 imx6ull 平台 将 /usr/local/qt4.8.6-arm 目录复制到 imx6ull 平台的文件系统中。然后,在 imx6ull 平台上设置 QTDIR 环境变量以指向该目录。 7. 测试 Qt 4.8.6 在 imx6ull 平台上,打开终端并执行以下命令以测试 Qt 4.8.6: ``` qmake -v ``` 此命令应该输出 Qt 4.8.6 的版本信息。 现在,您已经成功地将 Qt 4.8.6 交叉编译并部署到了 imx6ull 平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值