1.下载Qt源码
2.编译Qt
解压缩qt-everywhere-opensource-src-5.7.1.tar.gz
进入到qt-everywhere-opensource-src-5.7.1/qtbase/mkspecs这个目录下,
2.1找到以下目录
复制他,然后改名linux-x86-arrch64,博主这里名字取的有些问题,建议自定义名称。
进入到目录下,更改qmake.conf内容
指定编译工具链的路径
cpp
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
QMAKE_CXX = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP = /home/fmsh/work/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)
2.2返回qt-everywhere-opensource-src-5.7.1/目录下,创建shell脚本,生成makefile。
创建qt.sh脚本,编译内容如下:
-prefix /home/fmsh/work/Qt-5.7.1-x86_64_aarch64/ 指定make install后的路径。
-xplatform linux-x86-arrch64 指定2.1步骤中创建的文件夹名称。
cpp
#!/bin/sh
./configure \
-prefix /home/fmsh/work/Qt-5.7.1-x86_64_aarch64/ \
-release \
-opensource \
-make libs \
-xplatform linux-x86-arrch64 \
-optimized-qmake \
-pch \
-linuxfb \
-qt-libjpeg \
-qt-zlib \
-no-glib \
-no-opengl \
-no-sse2 \
-no-cups \
-no-iconv \
-no-accessibility \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcharts \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdeclarative \
-skip qtgamepad \
-skip qtvirtualkeyboard \
-nomake examples \
-nomake tools \
-nomake tests
exit
2.3保存,执行sh qt.sh命令,生成makefile文件
执行make -j8,开始编译,还是比较顺利,中途没有报错。
sudo make install 安装编译好的库。
3.配置交叉编译环境
第2步中,已经编译好Qt的库了,需要在QtCreator中进行配置
3.1选择标签 编译器,按下图设置,选择 C 交叉编译器,如下图所示:添加编译器的路径。
3.2切换到 Qt Versions 标签,点击"添加"按钮,选择 qmake,如下图所示:
3.3切换到 Kits 标签,点击"添加"按钮,然后设置如下图所示:
Qt 环境构建成功后,通常会在上图所示显示一黄色的小的 三角符+感叹号 。
4.准备板端Qt运行环境
使用tar压缩Qt编译好的库,防止复制粘贴断链。
打包成tar包
将编译好的可执行程序和需要的插件打包放在一个路径下,如下图所示。
将上面的目录拷贝到板端。
我将目录拷贝到板端的 /data 目录下。
编辑start.sh脚本,配置Qt运行环境,内容如下。
cpp
#!/bin/bash
FILE=/data/lib
if [ -d "$FILE" ]; then
echo "$FILE is exist"
else
echo "$FILE does not exist start compress..."
tar -zxvf /data/lib.tar.gz
fi
export QT_ROOT=/data
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QT_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export LD_LIBRARY_PATH=$QT_LIBRARY_PATH
chmod u+x /data/RemoteControl
/data/RemoteControl
运行程序:
cpp
sh start.sh