下载 qt-everywhere-opensource-src-5.15.11.tar.xz:点击跳转
一、编译tslib
1、在configure目录下执行以下命令
mkdir build
../configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabi-gcc --prefix=/home/gui/build //配置
make -j8 && sudo make install
二、编译qt
1、同理,在configure目录下执行以下命令
mkdir qt-5.15-build
cd qt-5.15-build
./../qt-everywhere-src-5.15.11/configure -prefix /opt/qt5.15 -shared -sql-sqlite -xcb -xcb-xlib -bundled-xcb-xinput -qt-zlib -qt-libpng -qt-libjpeg -no-fontconfig -iconv -nomake tests -nomake examples -skip qt3d -nomake tools
2、编译
make -j8 && sudo make install
3、配置环境变量
vi ~/.profile
在最后面输入:
export QTDIR=/opt/qt5.15
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
问题:
ERROR: Feature 'xcb' was enabled, but the pre-condition 'features.thread && libs.xcb && tests.xcb_syslibs && features.xkbcommon-x11' failed.
解决:
sudo apt-get install libxkbcommon* libxcb* libthread*
在执行configure之前,记得先删除config.cache 缓存文件
*********************集成子模块****************************
一、集成multimedia模块
1、下载qtmultimedia模块
2、进入qtmultimedia目录,创建并进入build目录,并执行qmake、make
mkdir build
cd build
/opt/armqt_base/bin/qmake ../*pro
make -j8
3、分别拷贝plugins、lib、include、mkspecs目录到/opt/armqt_base/对应的目录下
sudo cp plugins/ /opt/armqt_base/ -r
sudo cp lib/ /opt/armqt_base/ -r
sudo cp include/ /opt/armqt_base/ -r
sudo cp mkspecs/ /opt/armqt_base/ -r
二、交叉编译最小源码
1、进入qtbase/mkspecs
cd qtbase/mkspecs
2、选择名称与所用编译工具相近的文件夹拷贝一份,重命名为所用编译器名称
cp -a linux-aarch64-gnu-g++/ aarch64-sdrv-linux-g++/
3、修改qmake.conf文件,将编译器需改为当前的编译器
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
clangdefines += Q_ATOMIC_INT64_IS_SUPPORTED
# modifications to g++.conf
QMAKE_CC = "/opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-gcc --sysroot=/opt/cluster-qt/2.5.3/sysroots/aarch64-sdrv-linux"
QMAKE_CXX = "/opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-g++ --sysroot=/opt/cluster-qt/2.5.3/sysroots/aarch64-sdrv-linux"
QMAKE_LINK = "/opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-g++ --sysroot=/opt/cluster-qt/2.5.3/sysroots/aarch64-sdrv-linux"
QMAKE_LINK_SHLIB = "/opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-g++ --sysroot=/opt/cluster-qt/2.5.3/sysroots/aarch64-sdrv-linux"
# modifications to linux.conf
QMAKE_AR = /opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-ar cqs
QMAKE_OBJCOPY = /opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-objcopy
QMAKE_NM = /opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-nm -P
QMAKE_STRIP = /opt/cluster-qt/2.5.3/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-strip
load(qt_config)
4、配置
./configure \
-xplatform aarch64-sdrv-linux-g++ \
-verbose \
-opensource \
-release \
-shared \
-confirm-license \
-make libs \
-nomake tests \
-nomake examples \
-skip qtmacextras \
-skip qtandroidextras \
-no-opengl \
-prefix $PWD/build
/*
./configure -prefix $PWD/build \
-opensource -confirm-license -release \
-make libs -xplatform linux-aarch64-gnu-g++ \
-pch -sql-sqlite -qt-libjpeg -qt-libpng \
-qt-zlib -no-opengl -no-sse2 -no-openssl \
-nomake tests \
-skip qtmacextras \
-skip qtandroidextras \
-no-cups -no-glib -no-iconv -no-separate-debug-info \
-nomake examples -nomake tools -no-pkg-config
*/
5、编译
make -j8 && make install