前言:非常漫长的过程,可以说,移植qte4.5.1是我移植qte以来最难的一次,前面几次都非常顺利的完成了,这次却花了很大的力气,期间得到了阿乐的大力帮助,可以说移植完成,是我们两个人的汗血啊。
摘要:在友善之臂QQ2440 ARM9开发版上移植了最新的qt-embedded-linux-opensource-src-4.5.1,并且使用了tslib1.4,总结下移植过程和出现的问题。
正文:
为了参加博创的比赛,决定移植Qte4.5.1,Qt的嵌入式版本名字变来变去,花了很久才搞清,简单地来说,目前Qtembedded就是Qt嵌入式的库,而Qtextended就是原来的Qtopia。
首先要有配置好的环境,本文使用的编译环境如下:
qt-x11-opensource-src-4.5.1.tar.gz
移植过程:
平时程序都是在PC上完成的,所以我们需要先安装X11版的Qt来获得qvfb这个工具。嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。
qt-x11-opensource-src-4.5.1编译安装过程:
1.解压文件
将qt-x11-opensource-src-4.51.tar.gz复制到/root/local/qt目录下,进行解压,在终端中进行如下操作:
#cd /root/local/qt
#tar zxvf qt-x11-opensource-src-4.5.1.tar.gz
解压完成后,得到/usr/local/qt/qt-x11-opensource-src-4.5.1目录。下面就开始进行编译了。
2.编译及安装qt-x11-opensource-src-4.5.1
进入/usr/local/qt/qt-x11-opensource-src-4.5.1目录,进行编译安装。在终端中进行如下操作:
#./configure –qvfb
#make
#cd tools/qvfb
#make
#cd ../..
#make install
3.复制文件
make install完成后,会在/usr/local目录下生成一个Trolltech目录,形成/usr/local/Trolltech目录,这是qt-x11-opensource-src-4.5.1安装后所在的目录,进入/usr/local/Trolltech会看到一个Qt-4.5.1的目录,将/usr/local/qt/qt-x11-opensource-src-4.5.1/tools/qvfb目录下的qvfb相关文件拷贝到/usr/local/Trolltech/Qt-4.5.1/bin目录下,在终端中操作(确定当前目录是/usr/local/qt/qt-x11-opensource-src-4.5.1):
#cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.1/bin
qt-embedded-linux-opensource-src-4.5.1编译安装过程,为了程序开发的便捷性,我安装了x86版和arm版,先在PC上使用x86版和qvfb开发,完成以后再使用arm版交叉编译放到开发版上运行。
X86版安装过程:
1.解压文件
将qt-embedded-linux-opensource-src-4.5.1.tar.gz复制到/root/local/qt目录下进行解压,解压完成后,得到/usr/local/qt/qt-embedded-linux-opensource-src-4.5.1目录。将qt-embedded-linux-opensource-src-4.5.1重命名为qt-embedded-linux-opensource-src-4.5.1-x86。再解压一下qt-embedded-linux-opensource-src-4.5.1.tar.gz,并重命名为qt-embedded-linux-opensource-src-4.5.1-arm,在终端中进行操作:
#cd /root/local/qt
#tar zxvf qt-embedded-linux-opensource-src.tar.gz
#mv qt-embedded-linux-opensource-src-4.5.1 qt-embedded-linux-opensource-src-4.5.1-x86
#tar zxvf qt-embedded-linux-opensource-src.tar.gz
#mv qt-embedded-linux-opensource-src-4.5.1 qt-embedded-linux-opensource-src-4.5.1-arm
2.编译及安装qt-x11-opensource-src-4.5.1-x86
进入/usr/local/qt/qt-x11-opensource-src-4.5.1-x86目录,进行编译安装。在终端中进行如下操作:
#cd /usr/local/qt/qt-x11-opensource-src-4.5.1-x86
#./configure -qvfb
#make(或gmake)
#make install(或gmake install)
OK,qt-x11-opensource-src-4.5.1-x86就编译好了。
3.编译及安装qt-x11-opensource-src-4.5.1-arm
安装这个是最为关键的,因为编译好后要把lib拷贝到板子上
对于触摸屏幕,我使用的是tslib1.4
交叉编译tslib过程如下:
解压到/home下
#./autogen.sh
#./configure --prefix=/home/duancp/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes (可以先生成个cache文件)
#make
#make install-strip //生成瘦身应用程序和库
编译qt-x11-opensource-src-4.5.1-arm
进入/usr/local/qt/qt-x11-opensource-src-4.5.1-arm目录,进行编译安装。在终端中进行如下操作:
#./configure "
-release "
-shared "
-fast "
-no-largefile "
-qt-sql-sqlite "
-no-qt3support "
-no-xmlpatterns "
-no-mmx "
-no-3dnow "
-no-sse "
-no-sse2 "
-no-svg "
-no-webkit "
-qt-zlib "
-qt-gif "
-qt-libtiff "
-qt-libpng "
-qt-libmng "
-qt-libjpeg "
-make libs "
-nomake tools "
-nomake examples "
-nomake docs "
-nomake demo "
-no-nis "
-no-cups "
-no-iconv "
-no-dbus "
-no-openssl "
-xplatform qws/linux-arm-g++ "
-embedded arm "
-little-endian "
-qt-freetype "
-depths 16,18 "
-qt-gfx-linuxfb "
-no-gfx-transformed "
-no-gfx-multiscreen "