Qt4.8.5 为了支持开发板中的触摸屏,在编译 Qt 之前,要先编译 tslib 库。
[email protected]:~# sudo gedit /etc/bash.bashrc
- IMX28环境变量做如下设置:
export ARCH=arm export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-no ne-linux-gnueabi- export PATH=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin:$PATH
- IMX6环境变量做如下设置:
export ARCH=arm export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- export PATH=~/imx6/L3.0.35_4.1.0_130816_source/source/ltib/rpm/BUILD/u-boot-2009.08/tools:$PATH export PATH=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-multilib-2011.12/fsl-linaro-toolchain/bin:$PATH [email protected]:~# source /etc/bash.bashrc
3. 编译 tslib 库
从https://github.com/kergoth/tslib 下载tslib,解压 切换到/home/yechuang/Qt目录
[email protected]:/home/yechuang/Qt# unzip tslib-master.zip [email protected]:/home/yechuang/Qt# sudo chmod 777 tslib-master/ –R [email protected]:/home/yechuang/Qt/tslib-master# ls acinclude.m4 autogen.sh COPYING m4 plugins tests AUTHORS ChangeLog etc Makefile.am README TODO autogen-clean.sh configure.ac INSTALL NEWS src tslib.pc.in [email protected]:/home/yechuang/Qt/tslib-master# ./autogen.sh ./autogen.sh: 3: autoreconf: not found
错误原因:是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是
因为没有安装automake 工具, (ubuntu 10.04)用下面的命令安装就可以了。
sudo apt-get install autoconf automake libtool
开始安装:
[email protected]:/home/yechuang/Qt/tslib-master# ./autogen.sh
开始编译:
[email protected]:/home/yechuang/Qt/tslib-master# ./configure --host=arm-linux --prefix /home/yechuang/Qt/tslib-instal/
执行安装:
[email protected]:/home/yechuang/Qt/tslib-master#make install
在tslib-master下看到这几个文件夹,表明已经安装完毕。
[email protected]:/home/yechuang/Qt/tslib-master# ls ../tslib-instal/ bin etc include lib
4.交叉编译 Qt
4.1. 在/home/yechuang/Qt 目录中,删除之前 x86 版本的 qt4.8.5 安装文件夹 qt-everywhere-opensource-src-4.8.5 并重
新解压:$ tar –zxvf qt-everywhere-opensource-src-4.8.5.tar.gz
进入 qt 的源码中,在进入 mkspecs 文件夹
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# cd mkspecs/
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs# cp qws/linux-arm-gnueabi-g++ qws/linux-arm-fsl-gnueabi-g++ -r
为了避免破坏 Qt 的源码,我们自己复制一份,然后自此基础上修改;
4.2. 进入 linux-arm-fsl-gnueabi-g++,修改 qmake.conf 文件
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs# cd qws/linux-arm-fsl-gnueabi-g++/ [email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-fsl-gnueabi-g++# ls qmake.conf qplatformdefs.h
inux-arm-fsl-gnueabi-g++# gedit qmake.conf
打开源码为:
# # qmake configuration for building with arm-none-linux-gnueabi-g++ # include(../../common/linux.conf) include(../../common/gcc-base-unix.conf) include(../../common/g++-unix.conf) include(../../common/qws.conf) # modifications to g++.conf QMAKE_CC = arm-none-linux-gnueabi-gcc QMAKE_CXX = arm-none-linux-gnueabi-g++ QMAKE_LINK = arm-none-linux-gnueabi-g++ QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = arm-none-linux-gnueabi-ar cqs QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy QMAKE_STRIP = arm-none-linux-gnueabi-strip load(qt_config)
跟官方提供的编译参数不同,这里我不敢做大的修改,只是在下面添加一行命令,如果有问题我在修改为提供的编译环境。
添加行为:
QMAKE_LIBS_THREAD = -lpthread -lts
4.3. 配置 Qt :将所给的 run.sh 脚本拷贝到 qt 源码目录,sudo chmod +x run.sh 添加权限,然后$ ./run.sh
[email protected]:/home/yechuang/Qt# ls qt-everywhere-opensource-src-4.8.5 run.sh tslib-master qt-everywhere-opensource-src-4.8.5.tar.gz tslib-instal [email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# sudo chmod +x run.sh
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# ./run.sh
4.4. make 编译;
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make
这个时候还没有生成makefile,不能直接编译,我执行
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5#./configure
………………
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# ls bin configure.exe INSTALL Makefile run.sh changes-4.8.5 demos LGPL_EXCEPTION.txt mkspecs src config.profiles doc lib plugins templates config.status examples LICENSE.FDL projects.pro tools config.tests imports LICENSE.GPL3 qmake translations configure include LICENSE.LGPL README util
生成makefile,之后在进行make。
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make
执行通过。
4.5. 执行安装命令,由于 run.sh 没有指定安装路径,所以默认还是安装在了 usr/local/ Trolltech/
QtEmbedded-4.8.5-arm;
[email protected]:/home/yechuang/Qt/qt-everywhere-opensource-src-4.8.5# make install
4.6. 打开 qt creator
4.7. 选择 Qt 版本,点击添加
gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar 问题???
不能安装。