主机系统:Ubuntu 9.10
主机编译器:gcc 版本 4.4.1 (Ubuntu 4.4.1-4ubuntu8)
交叉编译器:arm-linux-gcc-4.0.1
软件资源:qt-embedded-linux-opensource-src-4.5.3.tar.gz
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 -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib
QMAKE_INCDIR = tslib -build/include # path to compiled includes
QMAKE_LIBDIR = tslib -build/lib # path to compiled libs
之所以裁剪那么多参数,是因为开发版空间有限,只要完成我所需要的功能就可以了,之后配置环境变量,我的配置如下:
export QTDIR=/qq2440
export T_ROOT=/tslib
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
最后,运行qt的测试程序成功,移植OK了。
出现的问题:
运行测试程序中说缺少librt.so.1 ,libstdc++.so.6 ,libgcc_s.so.1这三个文件,这是因为交叉编译的环境不同,从主机上的拷贝过去即可。还提示找不到字体,是因为编译时没有设定安装目录,在板子上建立一个连接就可以了。
参考资料:
[1]http://cgy136652.blog.163.com/blog/static/36168728200932410649487/
[2]http://blog.chinaunix.net/u2/86708/showart_1924834.html
[3]http://blog.chinaunix.net/u2/75270/showart_1793535.html
[4]http://blog.chinaunix.net/u1/39383/showart_1853496.html
[5]http://www.isongzi.com/2009/05/23/qt-configure/
[6]http://read.pudn.com/downloads78/sourcecode/embed/296243/%E7%94%A8tslib%E6%A0%A1%E5%87%86%E8%A7%A6%E6%91%B8%E5%B1%8F%EF%BC%88%E6%88%90%E5%8A%9F%EF%BC%89.rtf__.htm