交叉编译QT4.8.7源码生成qmake工具
TQ-i.MX6UL使用的QT版本是QT4.8.7,板卡出厂前附带的开发资料中,天嵌官方没有为开发者编译生成qmake工具。因此,为了后续进行的QT开发,我们需要自己手动编译QT源码,生成qmake。
编译前准备:
- 确保交叉编译器版本是arm-linux-gnueabihf-gcc 5.3.1 20160412 (Linaro GCC 5.3-2016.05)
- Qt源码版本是:qt-everywhere-opensource-src-4.8.7
- tslib源码版本是:tslib-1.1
TQ官方提供了一个组合软件包,里面包含了Qt源码和tslib源码,存放在以下路径:
TQIMX6UL_COREB_CD_V1.0_R2.1_20171115Linux源码包Qt源码qt-4.8.7_tslib-1.1.tar.bz2
开发者也可以在以下网址下载源码:
Qt源码:
http://mirrors.ustc.edu.cn/qtproject/archive/qt/4.8/4.8.7/
tslib源码:
https://github.com/kergoth/tslib/releases?after=1.5
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/
点击这里,学习更多Embeded IoT Linux开发