本帖最后由 embediot 于 2019-4-25 09:46 编辑
交叉编译QT4.8.7源码生成qmake工具
TQ-i.MX6UL使用的QT版本是QT4.8.7,板卡出厂前附带的开发资料中,天嵌官方没有为开发者编译生成qmake工具。 因此,为了后续进行的QT开发,我们需要自己手动编译QT源码,生成qmake。
编译前准备: 1、确保交叉编译器版本是arm-linux-gnueabihf-gcc 5.3.1 20160412 (Linaro GCC 5.3-2016.05) 2、Qt源码版本是:qt-everywhere-opensource-src-4.8.7 3、tslib源码版本是:tslib-1.1
TQ官方提供了一个组合软件包,里面包含了Qt源码和tslib源码,存放在以下路径: TQIMX6UL_COREB_CD_V1.0_R2.1_20171115\Linux源码包\Qt源码\qt-4.8.7_tslib-1.1.tar.bz2 开发者也可以在以下网址下载源码:
1、把QT源码和tslib源码qt-4.8.7_tslib-1.1.tar.bz2通过FileZilla Client工具,上传到ubuntu系统的/opt/tq-imx6ul/source_code目录。 执行以下命令,进行解压: tar xvf qt-4.8.7_tslib-1.1.tar.bz2 -C / 解压完成后,QT源码和tslib源码存放在以下目录:/opt/EmbedSky/TQIMX6UL/TQ_COREB
2、因为qt源码编译需要依赖于tslib源码,所以,在编译qt源码之前,需要先编译tslib源码。 tslib源码的编译脚本为build.sh,以下是编译脚本的内容: 脚本的内容:指定交叉编译器的具体版本和路径,INSTALL_DIR指定tslib的安装目录。然后执行make命令进行编译。Make install 命令进行安装。 我们可以在ubuntu的命令行终端,执行以下命令,进行tslib的安装: cd /opt/EmbedSky/TQIMX6UL/TQ_COREB/tslib-1.1 ./build.sh 安装完成后tslib存放在:/opt/EmbedSky/TQIMX6UL/TQ_COREB/imx6ul_rootfs/opt
3、成功编译tslib后,开始进行qt源码的编译安装。Qt源码的一系列编译命令,已封装成build_arm.sh脚本,如下图所示:
4、build_arm.sh的具体内容,如下图所示: 脚本的内容:指定交叉编译器的路径和版本。 ./configure指定qt源码编译时的配置选项,查看配置选项,可以看出此次编译是把qt源码编译为release版本,动态链接库形式,应用于嵌入式arm平台, 支持sqlite数据库,支持jpeg和png图形编码格式,等等。然后执行make -j8进行编译,make install进行安装。 我们可以在ubuntu的命令行终端,执行以下命令,进行qt源码的编译和安装: cd /opt/EmbedSky/TQIMX6UL/TQ_COREB/qt-everywhere-opensource-src-4.8.7 ./build_arm.sh 安装完成后qt存放在:/opt/EmbedSky/TQIMX6UL/TQ_COREA/imx6ul_rootfs/opt 执行以下命令,把qt源码复制到跟tslib同样的目录下,便于管理。 cd /opt/EmbedSky/TQIMX6UL/TQ_COREA/ cp imx6ul_rootfs /opt/EmbedSky/TQIMX6UL/TQ_COREB/ -a
5、完成以上工作后,qmake工具存放在以下目录: /opt/EmbedSky/TQIMX6UL/TQ_COREB/imx6ul_rootfs/opt/qt-4.8.7/bin/
|