QT移植:i.mx6q 移植Qt5.9.1(完美支持opengl、Qt quick2、QML)

本文介绍如何在i.mx6Q开发板上搭建Qt5.9.1环境,包括选择合适的交叉编译工具链、配置qmake及编译安装过程。此外还介绍了如何解决运行时字体缺失的问题。

下面就分享下如何打造一个能流畅运行QML的i.mx6Q开发板环境。

本人环境如下:

  1. 飞凌i.mx6Q开发板,这个板子的Linux系统太老了,很多东西没有,像SD卡升级内核这种后期工厂批量生产的方式就不支持,早知道买NXP官网的了(好像淘宝有另一家用的是新内核)。

     

    开发板图片

  2. Linux 3.0.35内核,就因为是这个老版本,导致多做了些工作,后面有说。

  3. U-Boot 2009.08

  4. Ubuntu 14.04 64位

准备工作

  1. 官网下载Qt5.9.1源代码
  2. QT从5.8开始,编译工具就必须要支持C++11标准的才行,而GCC版本4.8以上才支持这个标准,所以飞凌自带的交叉工具链已经不能拿来编译Qt5.9.1了。网上找了几个版本,发现太新的GCC在Linux3.0.35也会有问题,最后找了个arm-4.8.1的,才运行正常。(链接: https://pan.baidu.com/s/1pKAi0ER 密码: f2jn)
  3. 自行百度装好编译开发所需环境

编译步骤

1. 解压qt-everywhere-opensource-src-5.9.1.tar.xz

2. 解压arm-none-linux-gnueabi-linux-4.8.1.tar.bz2到/opt目录

3. 找出开发板自带的根文件系统,并解压到rootfs文件夹下面(我的为:/home/volfull/Workspace/rootfs/)

将GCC4.8.1的C库文件覆盖掉老根文件系统的C库文件

$ cp /opt/arm-4.8.1/arm-none-linux-gnueabi/libc/lib/* /home/volfull/Workspace/rootfs/lib/

还需要同样地覆盖掉开发板的/lib/里面的文件。

4. 修改QT的qmake.conf文件

$ cd qt-everywhere-opensource-src-5.9.1
$ vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

修改为:

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

#QT_QPA_DEFAULT_PLATFORM = eglfs   #linuxfb   

IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 
IMX6_CFLAGS_RELEASE     = -O2 $$IMX6_CFLAGS 
QMAKE_CFLAGS_RELEASE   += $$IMX6_CFLAGS_RELEASE 
QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE 
QMAKE_CFLAGS_DEBUG     += $$IMX6_CFLAGS 
QMAKE_CXXFLAGS_DEBUG   += $$IMX6_CFLAGS

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = /opt/arm-4.8.1/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX               = /opt/arm-4.8.1/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK              = /opt/arm-4.8.1/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = /opt/arm-4.8.1/bin/arm-none
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值