下面就分享下如何打造一个能流畅运行QML的i.mx6Q开发板环境。
本人环境如下:
-
飞凌i.mx6Q开发板,这个板子的Linux系统太老了,很多东西没有,像SD卡升级内核这种后期工厂批量生产的方式就不支持,早知道买NXP官网的了(好像淘宝有另一家用的是新内核)。

开发板图片
-
Linux 3.0.35内核,就因为是这个老版本,导致多做了些工作,后面有说。
-
U-Boot 2009.08
-
Ubuntu 14.04 64位
准备工作
- 官网下载Qt5.9.1源代码
- 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)
- 自行百度装好编译开发所需环境
编译步骤
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

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

被折叠的 条评论
为什么被折叠?



