(3) 根据需求配置Qt
配置Qt可以通过源码包中configure脚本来完成,运行configure脚本后会得到makefile文件,具体的可用配置可以执行./configure-help查看参数,根据自身需要进行配置,这里编写了一个脚本来实现配置的步骤。
mm@ubuntu:~/work/qt5.9/qt-everywhere-opensource-src-5.9.5$vi build.sh
以下是build.sh内容
#!/bin/sh
exportCROSS=arm-linux-gnueabihf-
CROSS_TOOLCHAIN_PATH=/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/sysroot_qt5.9
exportPKG_CONFIG_PATH=${CROSS_TOOLCHAIN_PATH}/usr/lib/pkgconfig
./configure--prefix=${CROSS_TOOLCHAIN_PATH}/usr --bindir=${CROSS_TOOLCHAIN_PATH}/usr/bin--libexecdir=${CROSS_TOOLCHAIN_PATH}/usr/lib/dbus-glib--datadir=${CROSS_TOOLCHAIN_PATH}/usr/share--sysconfdir=${CROSS_TOOLCHAIN_PATH}/etc--libdir=${CROSS_TOOLCHAIN_PATH}/usr/lib
-confirm-license-opensource -release -make libs -xplatform linux-arm-gnueabi-g++-optimized-qmake -pch
-qt-libjpeg-qt-libpng -qt-zlib
-gui
-no-opengl
参数-prefix指定了文件的安装路径,这里的安装路径是/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/sysroot_qt5.9,参数-xplatform指定了目标平台为linux-arm-gnueabi-g++。执行这个脚本后就会得到makefile文件,
(4) 编译安装
执行make&&makeinstall,然后开始漫长的编译过程,整个过程持续大概2个小时。
3.移植库并配置开发板环境
(1)移植所需的文件到ARM中
编译成功会在-prefix指定的安装路径中生成一系列文件夹
mm@ubuntu:~/work/qt5.9/qt-everywhere-opensource-src-5.9.5$ls /opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/sysroot_qt5.9/usr/
bin include lib mkspecs plugins qml share
mm@ubuntu:~/work/qt5.9/qt-everywhere-opensource-src-5.9.5$
将编译安装得到的lib、plugins拷贝到开发板中,lib中存放的是Qt程序运行所需的动态库文件,plugins中存放的是所需的插件,将相关文件、文件夹通过U盘或者网络方式拷贝到板子,这里通过网络传输,将相关文件拷贝到板子/opt/qt5.9文件夹中。
root@Embedsky:/opt/qt5.9#ls usr/
bin include lib mkspecs plugins qml share
root@Embedsky:/opt/qt5.9#
(2)配置环境执行qt程序
配置环境:
exportQT_QPA_PLATFORM_PLUGIN_PATH=/opt/qt5.9/usr/plugins //插件路径
exportLD_LIBRARY_PATH=/opt/qt5.9/usr/lib/ //库路径
exportQT_QPA_PLATFORM=linuxfb
exportQT_QPA_FONTDIR=/usr/lib/fonts //该处使用板子原有字体库
这时候相关库和环境已经有了,我们使用qmake编译一个现成的qt程序拷贝到板子,编译命令:
#/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/sysroot_qt5.9/usr/bin/qmakePDA.pro
#make
拷贝到板子/opt/qt5.9_demo目录下执行
root@Embedsky:/opt/qt5.9_demo#./tqpda
libpng warning:iCCP: known incorrect sRGB profile
libpng warning:iCCP: known incorrect sRGB profile
libpng warning:iCCP: known incorrect sRGB profile
libpng warning:iCCP: known incorrect sRGB profile
QFontDatabase:Cannot find font directory /usrlib/fonts.
至此qt移植完成。
原文转自【广州天嵌】公众号,更多详请欢迎关注。