freewing 发表于 2021-5-31 10:28:40

Qt5.9.5移植到ARM开发板

【导语】目前天嵌IMX6Q、IMX6UL等平台默认提供的Qt版本是5.5,由于Qt版本不断更新,当现有版本的Qt库不能满足实际开发需求时,则需要进行Qt移植。本文将介绍下如何将Qt5.9.5移植到ARM开发板上。1.准备工作(1)   主机环境:Ubuntu 16.04开发板:天嵌IMX6Q_COREC(【点击此处】了解核心板参数)(2)   官网下载Qt5.9.5源码包qt-everywhere-opensource-src-5.9.5.tar.xz官网下载路径:https://download.qt.io/archive/qt/5.9/5.9.5/(3)   安装IMX6Q配套交叉编译器5.3.1,因为Qt5.9.5支持C++11,所以交叉编译器版本需要高于4.8以上,gcc版本也建议在gcc 4.8以上版本,低于可能报错unrecognized command line option “-std=c++11”2交叉编译Qt5.9.5源码(1)   拷贝Qt源码包至Ubuntu并解压mm@ubuntu:~/work/qt5.9$tar xvf qt-everywhere-opensource-src-5.9.5.tar.xz                  //解压mm@ubuntu:~/work/qt5.9$lsqt-everywhere-opensource-src-5.9.5qt-everywhere-opensource-src-5.9.5.tar.xz (2)   指定目标平台的架构和交叉编译器的类型Qt5中针对不同的目标平台都有相应的配置文件夹,只需修改对应目标平台文件夹中的配置文件qmake.conf。mm@ubuntu:~/work/qt5.9$cd qt-everywhere-opensource-src-5.9.5/mm@ubuntu:~/work/qt5.9/qt-everywhere-opensource-src-5.9.5$vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf下面是修改后的qmake.conf,其中的内容需要根据自己的实际情况去修改,这里改动了交叉编译器名字(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/shexportCROSS=arm-linux-gnueabihf-CROSS_TOOLCHAIN_PATH=/opt/EmbedSky/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/sysroot_qt5.9exportPKG_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/bininclude libmkspecsplugins qmlsharemm@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/bininclude libmkspecsplugins qmlshareroot@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#./tqpdalibpng warning:iCCP: known incorrect sRGB profilelibpng warning:iCCP: known incorrect sRGB profilelibpng warning:iCCP: known incorrect sRGB profilelibpng warning:iCCP: known incorrect sRGB profileQFontDatabase:Cannot find font directory /usrlib/fonts.至此qt移植完成。

wldllz 发表于 2022-7-14 16:12:43

收藏,马上要用到了,谢谢、
页: [1]
查看完整版本: Qt5.9.5移植到ARM开发板