Ununtu 16.04交叉编译qt5.9.4
1、准备工作
(1)官网下载qt5.9.4的源码;
(2)准备交叉编译器,这里的交叉编译器必须是你的目标开发板配套的交叉编译工具;
(3)将交叉编译器添加到环境变量;
2、解压qt5.9.4源码
tar vxf qt-everywhere-opensource-src-5.9.4.tar
cd qt-everywhere-opensource-src-5.9.4
3、修改qmake.conf
vim qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf
1 #
2 # qmake configuration for building with aarch64-linux-gnu-g++
3 #
4
5 MAKEFILE_GENERATOR = UNIX
6 CONFIG += incremental
7 QMAKE_INCREMENTAL_STYLE = sublib
8
9 include(../common/linux.conf)
10 include(../common/gcc-base-unix.conf)
11 include(../common/g++-unix.conf)
12
13 # modifications to g++.conf
14 QMAKE_CC = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-gcc
15 QMAKE_CXX = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-g++
16 QMAKE_LINK = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-g++
17 QMAKE_LINK_SHLIB = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-g++
18
19 # modifications to linux.conf
20 QMAKE_AR = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-ar cqs
21 QMAKE_OBJCOPY = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-objcopy
22 QMAKE_NM = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-nm -P
23 QMAKE_STRIP = /media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-strip
24 load(qt_config)
修改14-23行的内容,改为自己相对应的交叉编译器绝对路径,最好是绝对路径。
4、生成makefile文件
执行./configure进行对应的配置,可以用./confgure --help查看。
./configure -v --prefix=$PWD/qt5 -release -make libs -xplatform linux-aarch64-gnu-g++ -optimized-qmake -pch -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-separate-debug-info -nomake examples -nomake tools -device-option CROSS_COMPILE=/media/u260510/47037fce-de1d-40bd-8cd8-922f0e1edc8e/rk_docs/rk1808/buildroot/output/rockchip_rk1808/host/usr/bin/aarch64-buildroot-linux-gnu-
安装路径用–prefix=参数自己指定。CROSS_COMPILE参数是自己编译器的绝对路径。
5、编译
make
6、安装
make install
安装完成后会在你的安装目录下看到以下文件:
bin doc include lib mkspecs plugins qml translations
7、移植到目标开发板
将安装目录下的include、 lib、 plugins复制到开发板/opt/qt5目录下(**注意:**这是我自己的目录,可以根据自己的实际情况进行修改)
8、添加环境变量
上一步移植好之后,在要在开发板上设置qt的环境变量:
打开profile添加以下内容:
vi /etc/profile
export QT_ROOT=/opt/qt5
export TSLIB_ROOT=/opt/tslib
export LD_LIBRARY_PATH=/opt/qt5/lib:$LD_LIBARAY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export LD_PRELOAD=/usr/lib/preloadable_libiconv.so:$TSLIB_ROOT/lib/libts.so
export QT_QPA_GENERIC_PLUGINS=/opt/tslib
9、验证
使用qt creator编写一个小界面,移植到开发板上进行验证,具体方法自己百度。