文章一:
ARM QT移植详细步骤教程
米尔SAM9X5和A5D3X上默认的Qt版本是4.5.3,当这个版本的Qt库不能满足实际开发需求时,可通过此方法制定Qt开发、运行环境。
移植的步骤如下:
1、下载新版qt;
2、编译tslib;
3、编译qt;
4、配置编译后的qt,以便在主机上用qmake编译适用目标板的qt应用;
5、拷贝lib文件到目标板。
一、下载qt和tslib
比如要安装4.8.5版本,则下载 qt-everywhere-opensource-src-4.8.5.tar.gz,
米尔百度云下载(建议!~):http://pan.baidu.com/s/1i3j5cyT
官网下载地址:http://download.qt-project.org/archive/qt/。
还要下载tslib,
米尔百度云盘下载,地址(建议!~):http://pan.baidu.com/s/1fF8gI
官方下载地址:https://github.com/kergoth/tslib;
二、编译tslib
1、 建立工作目录
- $ cd ~$ sudo make /usr/local/tslib
- $ sudo make /usr/local/qt4.8.5-arm
- $ mkdir qt-arm
- $ cd qt-arm
2、编译安装tslib
将下载的tslib源码复制到工作目录,并解压:
- $ cp tslib-1.4.tar.gz ./
- $ tar xzvf tslib1.4.tar.gz
- $ cd tslib
3、配置环境
先安装automake、libtool 两个工具:
- $ sudo apt-get install automake libtool
- $ export PATH=$PATH:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-2010415_linux/bin
4、编译
配置tslib,安装路径可以通过 --prefix 参数设置,这里安装到/usr/local/tslib:
- $ ./autogen.sh
- $ ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --prefix=/usr/local/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes
编译安装:
- $ make
- $ sudo make install
完成后,tslib会按安装到/usr/local/tslib目录下。
进入下一步之前,先将/usr/local/tslib/etc/ts.conf文件第二行“#module_raw input”注释去掉,变为“module_raw input”,注意一定要顶格。
三、编译安装qt
1、解压
- $ cd ~/qt-arm
- $ cp qt-everywhere-opensource-src-4.8.5.tar.bz2 ./
- $ tar xjvf qt-everywhere-opensource-src-4.8.5.tar.bz2
- $ cd qt-everywhere-opensource-src-4.8.5
打开解压目录下的mkspecs/qws/linux-arm-g++/qmake.conf:
- $ vi mkspecs/qws/linux-arm-g++/qmake.conf
用vi打开qmake.conf 后,将arm-linux-全部替换arm-linux-gnueabihf-(注意:根据自己板子而定,并且一定要先将交叉编译器的路径加入PATH变量中),并加上-lts,然后保存退出,更改后如下:
- # modifications to g++.conf
- QMAKE_CC = arm-linux-gnueabihf-gcc -lts
- QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
- QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
- QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts
- # modifications to linux.conf
- QMAKE_AR = arm-linux-gnueabihf-ar cqs
- QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
- QMAKE_STRIP = arm-linux-gnueabihf-strip<font face="黑体"></font>
3、配置Qt
如下,先通过 --prefix 指定qt安装的路径,-I后面指定上一步tslib的include路径,-L后面指定上一步tslib的lib路径,
- $ sudo mkdir /usr/local/qt4.8.5-arm
- $ sudo ./configure --prefix=/usr/local/qt4.8.5-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/usr/local/tslib/include -L/usr/local/tslib/lib -confirm-license
可以执行./configure --help查看参数的详细说明,根据需要来配置合适的参数
如果配置的时候提示:
The tslib functionality test failed!
You might need to modify the include and