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)

3. configure配置

不同的要求配置不一样,根据自己的需要查看./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
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐