正点开发板I.MX6U 移植 Qt5.12.9

正点开发板I.MX6U  移植 Qt5.12.9

运行环境win10, Ubuntu20.04 虚拟机,Ftp 传输软件FileZilla win10 和 linux 传输文件

1.下载交叉编译器

https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gn
ueabihf/
 

2.安装交叉编译器

FileZilla   拷贝 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz 到 Ubuntu 虚拟机
Ubuntu 目录下创建 /usr/local/arm 文件夹,为下面安装到 /usr/local/arm 这个文件夹做准备。
sudo mkdir /usr/local/arm
解压交叉编译器压缩包至 /usr/local/arm 目录下,稍等片刻,解压完成如下。
sudo tar xf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz -C /usr/local/arm/
使用 vi 指令编辑 /etc/profile 这个文件
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

3 验证通过交叉编译器

要使用此编译器,还要在 Ubuntu 上安装一些库。
sudo apt-get install lsb-core lib32stdc++6
在终端输入 arm-linux-gnueabihf-gcc -v 来查看安装的交
叉编译器版本号。看到如下结果,表明成功!
 

4.获取 tslib

获取 tslib 的源码, git 地址为 https://github.com/kergoth/tslib tslib 源码已经放到开发板光
将 压缩包发送到 Ubuntu 中并解压,得到名为“ tslib-1.21 ”的目录,此目录下就是 tslib 源码。
拷贝至 Ubuntu 虚拟机目录下,将其解压,得到 tslib-1.21 文件夹。
tar xf tslib-1.21.tar.bz2
进入 tslib-1.21 文件夹下
cd tslib-1.21

5.编译tslib

生成 Makefile ,还需要安装以下软件

sudo apt-get update
sudo apt-get install autoconf automake libtool
执行 autogen.sh 生成 Makefile ,以编译源码
执行下面的指令
./configure --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/home/zhangcao/tslib-1.21/arm-tslib
 
 
直接执行 make 编译及 make install 安装。
 
编译出现警告不用理会以,安装完成后在当前目录下生成一个 arm-tslib 目录。也是我们上面指
令的编译输出目录路径。可以查看生成目录下有以下内容。
 
 

6.下载 Qt5.12.9 源码

我们可以在 Qt 下载地址 https://download.qt.io/ 找到 https://download.qt.io/archive/qt/5.12/5.12.9/si
ngle/ ,进入下载页面如下。
 
 
 
Windows 上下载好上面 qt-everywhere-src-5.12.9.tar.xz 源码拷贝到 Ubuntu 虚拟机下,或者直
接右键上面的下载项,复制下载地址链接,在 Ubuntu 下直接使用 wget 指令下载。
Ubuntu 使用 wget 指令下载 qt-everywhere-src-5.12.9.tar.xz 源码如下。
wget https://download.qt.io/archive/qt/5.12/5.12.9/single/qt-everywhere-src-5.12.9.tar.xz

解压下载好的 qt-everywhere-src-5.12.9.tar.xz 源码压缩包。解压时间较长,请耐心等待。

tar xf qt-everywhere-src-5.12.9.tar.xz
在当前目录出现 qt-everywhere-src-5.12.9 目录夹,此文件夹就是我们解压后的目录。进入此目
录。
 

7.修改qmake.conf

编辑 mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf ,配置相关编译器及路径。
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 = linuxfb
QMAKE_CFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)
 

8.配置编译选项

查看编译选项,输入 ./configure -help 指令,查看可配置选项
由于配置较长,按需要编译,编者总结了配置项,写了一个脚本
 
vi autoconfigure.sh
 
在这个 autoconfigure.sh 添加以下内容。复制时注意,每行前面不要留空格。
./configure -prefix /home/zhangcao/linux/qt-everywhere-src-5.12.9/arm-qt \
	-opensource \
	-confirm-license \
	-release \
	-strip \
	-shared \
	-xplatform linux-arm-gnueabi-g++ \
	-optimized-qmake \
	-c++std c++11 \
	--rpath=no \
	-pch \
	-skip qt3d \
	-skip qtactiveqt \
	-skip qtandroidextras \
	-skip qtcanvas3d \
	-skip qtconnectivity \
	-skip qtdatavis3d \
	-skip qtdoc \
    -skip qtgamepad \
    -skip qtlocation \
    -skip qtmacextras \
    -skip qtnetworkauth \
    -skip qtpurchasing \
    -skip qtremoteobjects \
	-skip qtscript	\
    -skip qtscxml \
    -skip qtsensors \
    -skip qtspeech \
    -skip qtsvg \
    -skip qttools \
    -skip qttranslations \
    -skip qtwayland \
    -skip qtwebengine \
    -skip qtwebview \
    -skip qtwinextras \
    -skip qtx11extras \
    -skip qtxmlpatterns \
    -make libs \
    -make examples \
    -nomake tools -nomake tests \
    -gui \
    -widgets \
    -dbus-runtime \
	--glib=no \
	--iconv=no \
	--pcre=qt \
	--zlib=qt \
    -no-openssl \
	--freetype=qt \
	--harfbuzz=qt \
    -no-opengl \
    -linuxfb \
	--xcb=no \
    -tslib \
	--libpng=qt \
	--libjpeg=qt \
	--sqlite=qt \
    -plugin-sql-sqlite \
    -I/home/zhangcao/linux/tslib-1.21/arm-tslib/include \
    -L/home/zhangcao/linux/tslib-1.21/arm-tslib/lib \
    -recheck-all

/home/zhangcao/linux 是我存放tslib的目录具体使用根据自己的路径设置

赋予脚本可执行权限。
chmod +x autoconfigure.sh
直接执行 autoconfigure.sh 。配置需要一段时间,请耐心等待!
sudo apt-get install g++ // 配置前请先安装 g++
./autoconfigure.sh
 
 
直接执行 make 开始编译
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值