前言:非常漫长的过程,没有什么技术上的难点,关键在于细心。 摘要:在友善之臂QQ2440 ARM9开发版上移植了最新的qt-embedded-linux-opensource-src-4.5.1,并且使用了tslib1.4,总结下移植过程和出现的问题。 正文: 首先要有配置好的环境,本文使用的编译环境如下: 主机系统:Ubuntu 8.04 主机编译器:gcc 版本 4.2.4 (Ubuntu 4.2.4-1ubuntu4) 交叉编译器:arm-linux-gcc-3.4.1 软件资源: qt-embedded-linux-opensource-src-4.5.1.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 -I/home/cnnbboy/opt/include -L/home/cnnbboy/opt/lib 之所以裁剪那么多参数,是因为开发版空间有限,只要完成我所需要的功能就可以了,之后配置环境变量,我的配置如下: 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
关键字: QtEmbedded,qq2440
