交叉编译qte-3.3.8

                                                                       交叉编译qte-3.3.8

平台 gec ARM9系列 arm-linux-gcc 版本 3.4.4

一、下载qt源文件

ftp://ftp.qtopia.org.cn/mirror/ftp.trolltech.com/qt/source/qt-embedded-free-3.3.8.tar.bz2

二、交叉编译embedded库

mkdir /root/build_qt cd /root/build_qt tar jxvf qt-embedded-free-3.3.8.tar.bz2 mv qt-embedded-free-3.3.8 qte

 

三、复制x86平台AS4 中的 uic,moc工具到/root/build_qt/qte/bin目录下(如果在编译的过程中仍提示缺少,请再复制一次); cp /usr/bin/uic /root/build_qt/qte/bin cp /usr/bin/moc /root/build_qt/qte/bin

 

四、设置安装环境变量 export QTDIR=/root/build_qt/qte export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export PATH=/usr/local/arm/3.4.4/bin:$QTDIR/bin:$PATH

五、编写src/tools/qconfig-local.h文件,添加触摸屏支持。

 #ifndef QT_H #endif #ifndef QT_DLL #define QT_DLL #endif #define QT_QWS_IPAQ #define QT_QWS_IPAQ_RAW #define QT_NO_QWS_CURSOR #define QT_NO_QWS_MOUSE_AUTO

 六、添加tslib补丁,增加QT3.3.8对tslib的触摸屏校正支持。

将tslib.patch 复制到/root/build_qt目录下,然后进入/root/build_qt/qte目录执行: patch –p1 < ../tslib.patch 七、在编译QTE之先移植tslib 库。先交叉编译tslib-1.4 使用交叉工具链3.4.4 或my-3.3.2 均可。 mkdir /root/build_tslib cd /root/build_tslib tar zxvf tslib-1.4.gz (解压完在当前目录下生成一个tslib 源码目录,进入该目录编译) cd tslib ./autogen.sh //用于生产configure //配置成将生成的文件指定安装到/share/tslib 目录, ./configure --prefix=/share/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --enable-inputapi=yes Make make install //也可以用make install-strip 压缩应用程序和库 八、修改/share/tslib/etc 目录下的ts.conf 文件,将module_raw input 前面的注释去掉,使能QT 支持触摸屏。 # vi tslib/etc/ts.conf # Uncomment if you wish to use the linux input layer event interface module_raw input (顶格) # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d # module_raw collie # Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860 # module_raw corgi # Uncomment if you're using a device with a UCB1200/1300/1400 TS interface # module_raw ucb1x00 # Uncomment if you're using an HP iPaq h3600 or similar # module_raw h3600 # Uncomment if you're using a HitachiWebpad # module_raw mk712 # Uncomment if you're using an IBMArctic II # module_raw arctic2 module pthres pmin=1 module variance delta=30 module dejitter delta=100 module linear 将交叉编译生成的/share/tslib 目录全部文件拷贝到制作的根文件系统的根目录下(如: /root/rootfs/下) 九、修改root/build_qt/qte/src/embedded/qmouselinuxtp_qws.cpp 修正正确的触摸屏设备名称。 #ifdef QT_QWS_IPAQ_RAW mouseFD = open( “/dev/input/event0”, O_RDONLY) 将双引号内的设备名称改为自己的确切设备 十、将QT_NO_IMAGEIO_JPEG 宏注释,以便QTE支持Jpeg图片编译。修改qte/scr/tools/qconfig-large.h 跟 include/qfeatures.h 头文件(请参考qconfig-large.h文件) QT_NO_IMAGEIO_JPEG 查找到该宏,将其注释,同时将跟NO_IMAGEIO有关的宏都注释,方便支持更多的图像文件。 十一、配置编译QTE ./configure -qt-libjpeg -qt-gif -qt-libpng -system-libjpeg -qt-libmng -qt-imgfmt-jpeg -embedded arm -thread -no-cups -no-stl -no-mouse-pc -no-mouse-yope -no-mouse-bus -no-mouse-vr41xx -qt-mouse-tslib -I/share/tslib/include -L/share/tslib/lib -lts -qconfig local -depths 4,8,16,32 –qvfb ////////////////////////////////////////////////////////////////////////////////// ./configure -qt-libjpeg -qt-gif -qt-libpng -system-libjpeg -qt-libmng -qt-imgfmt-jpeg -embedded arm -thread -no-cups -no-stl -no-mouse-pc -no-mouse-yope -no-mouse-bus -no-mouse-vr41xx -qt-mouse-tslib -I/share/tslib/include -L/share/tslib/lib -lts -qconfig local -depths 4,8,16,32 –qvfb ///////////////////////////////////////////////////////////////////////////////// make 至此,QTE库交叉编译完成,可以用于交叉编译QTE应用程序。将开发板上需要安装的显示库移植到开发板的根文件系统中 mkdir /root/rootfs/qte cp -d /root/build_qt/qte/lib /root/rootfs/qte/ 应用程序交叉编译 一、设置环境变量,可以将下列变量设置编辑成脚本(如env.sh,然后用source指令执行) export QTDIR=/root/build_qt/qte export QMAKEDIR=$QTDIR/qmake export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export PATH=$QMAKEDIR/bin:$QTDIR/bin:/usr/local/arm/3.4.4/bin:$PATH export QMAKESPEC=qws/linux-arm-g++ 二、生成项目文件 qmake -project 三、生成Makefile文件 qmake 修改Makefile文件添加tslib库的支持 LIBS = $(SUBLIBS) -L$(QTDIR)/lib -L/share/tslib/lib -lts -lqte-mt 四、编译程序 make

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭