Qt交叉编译注意事项:
- 若在configure或者make过程中遇到了错误,进行一定的方法修改后建议重新解压Qt源码进行测试,否则有可能解决方法是有效的,但是在当前已错的情况下编译仍然会报错,不要想着使用QT的make clean和make distclean。实测无效。
- configure出错的情况下可以查看config.log文件。有时候config.log文件内容只是你写的configure配置参数,建议重新解压源码configure后若还是错误则查看config.log。实测,一般进行过一次configure之后再次configure的话,config.log中的内容就是configure编译参数。
- make过程中出错建议网上翻看编译信息,可能有错误提示已经建议解决办法。
1. 解压
sudo tar xvf qt-everywhere-opensource-src-5.9.7.tar.xz
2. 配置Qt工具链
修改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
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /home/pgs/toolChain/bin/arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = /home/pgs/toolChain/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = /home/pgs/toolChain/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = /home/pgs/toolChain/bin/arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = /home/pgs/toolChain/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /home/pgs/toolChain/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM = /home/pgs/toolChain/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP = /home/pgs/toolChain/bin/arm-linux-gnueabihf-strip
load(qt_config)
不同的要求配置不一样,根据自己的需要查看./configure -h,我本次使用的配置如下:
#!/bin/sh
./configure \
--prefix=/home/pgs/Qt5.9.7_Arm \
-opensource \
-confirm-license \
-xplatform linux-arm-gnueabi-g++ \
-release \
-v \
-pch \
-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-no-glib \
-no-sse2 \
-no-cups \
-no-opengl \
-no-iconv \
-nomake examples \
-skip qtdoc \
-skip qtandroidextras \
-skip qtpurchasing \
-skip qtgamepad \
-skip qtsvg \
-skip qtwebchannel \
-skip qtwebengine \
-tslib \
-I/home/pgs/tslib1.19_Arm/include \
-L/home/pgs/tslib1.19_Arm/lib \
exit
QT官网的嵌入式配置例子:
./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=$TOOLCHAIN/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot $ROOTFS -prefix /usr/local/qt5
4. make编译
sudo make
5. 安装
sudo make install
|