本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、环境:
PC操作系统:Ubuntu 18.04.6 gcc 版本:gcc-arm-linux-gnueabihf-8.3.0
二、下载软件包
1、tslib-1.21: github.com/libts/tslib… Tslib用于访问触摸屏设备,以防操作系统不提供驱动程序支持。 它也可能只用于优化触摸用户体验,通过应用任何数字或顺序的数学过滤器。 libts库具有高度可配置性和可移植性。 Tslib包括校准、测试和使用库的工具。 它非常适合于嵌入式设备,并在许多商业产品中使用。 Tslib包含了如何使用它的文档。(官网解释翻译) 2、alsa-lib-1.2.2: www.alsa-project.org/files/pub/l… ALSA -lib包含开发人员用来编译ALSA应用程序的用户空间库。(官网解释翻译)
三、第三方库交叉编译
先把交叉编译工具的bin目录配置到环境变量。
export PATH=/opt/gcc-arm-linux-gnueabihf-8.3.0/bin/:$PATH
1、tslib-1.21
configure配置:
../configure CC=/opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-gcc --prefix=/opt/tslib-1.21 --host=arm-linux-gnueabihf
注:CC一定要使用绝对路径。
2、alsa-lib-1.2.2
configure配置:
../configure CC=/opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-gcc --prefix=/opt/alsa-lib-1.2.2 --host=arm-linux-gnueabihf
四、依赖库安装
sudo apt install g++ make qt3d5-dev-tools -y
sudo apt install qml-module-qtquick-xmllistmodel -y
sudo apt install qml-module-qtquick-virtualkeyboard qml-module-qtquick-privatewidgets qml-module-qtquick-dialogs qml -y
sudo apt install libqt53dquickscene2d5 libqt53dquickrender5 libqt53dquickinput5 libqt53dquickextras5 libqt53dquickanimation5 libqt53dquick5 -y
sudo apt install qtdeclarative5-dev qml-module-qtwebengine qml-module-qtwebchannel qml-module-qtmultimedia qml-module-qtaudioengine -y
五、QT交叉编译(不带opengl)
1、修改qmake配置
(1)模板拷贝
模板路径: qt-everywhere-src-5.11.3/qtbase/mkspecs/linux-arm-gnueabi-g++
可以将**linux-arm-gnueabi-g++**目录在同级目录下复制一份,然后再修改。
(2)qmake.conf修改
路径: qt-everywhere-src-5.11.3/qtbase/mkspecs/linux-arm-gnueabi-g++_imx6/qmake.conf
#
# 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 = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
#交叉编译工具
QMAKE_AR = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP = /opt/gcc-arm-linux-gnueabihf-8.3.0/bin/arm-linux-gnueabihf-strip
load(qt_config)
#tslib路径(交叉编译库)
QMAKE_INCDIR=/opt/tslib-1.21/include
QMAKE_LIBDIR=/opt/tslib-1.21/lib
2、configure配置脚本文件
#!/bin/sh
../configure \
-prefix /opt/qt-5.11.3_imx6_noopengl \
-xplatform linux-arm-gnueabi-g++_imx6 \
-release \
-opensource \
-confirm-license \
-no-openssl \
-no-opengl \
-no-xcb \
-no-eglfs \
-no-compile-examples \
-no-pkg-config \
-skip qtsensors \
-skip qtdoc \
-skip qtwayland \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip qtdeclarative \
-no-iconv \
-no-glib \
-tslib \
-I/opt/tslib-1.21/include \
-L/opt/tslib-1.21/lib \
-alsa \
-I/opt/alsa-lib-1.2.2/include \
-L/opt/alsa-lib-1.2.2/lib \
说明:
- -xplatform:指向上一步mkspecs目录下拷贝出来的文件夹名
- -tslib:启用tslib,并指向已经交叉编译出来的库和头文件目录
- -alsa:启用alsa,并指向已经交叉编译出来的库和头文件目录
3、编译、安装
make
make install