免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1178 | 回复: 0
打印 上一主题 下一主题

详解qt4.5.0的移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-17 14:43 |只看该作者 |倒序浏览
这几天一直在跟qt打交道,从迷惘清晰走入清晰,再从清晰走入迷惘。到现在算是看到一丝阳光,呵呵,我把我这些天遇到的问题和我的理解写下来。

首先要特别注意的是(这也是非常重要的):
QT-embedded-4.5.0(4.x.x)是没有桌面环境qpe的,我开始不知道,一直想着桌面环境,所以也就一直处于比较迷惑的状态。如果你要桌面环境你是要自己写的。

我环境:
主机系统:Ubuntu 8.04
主机编译器:gcc 4.2.4
交叉编译器:arm-linux-gcc 4.2.2
软件:qt-embedded-linux-opensource-src-4.5.0.tar.bz2
     qt-x11-opensource-src-4.5.0.tar.bz2
一:下载源码包
在:ftp://
ftp.qt
software.com/qt/source下载
     qt-embedded-linux-opensource-src-4.5.0.tar.bz2  
     qt-x11-opensource-src-4.5.0.tar.bz2
     tslib1.4
     
http://blogimg.chinaunix.net/blog/upfile2/091217144440.gz
下载

二:先装几个库
如果这几个库没装则在编译qvfb时会提示/usr/bin/ld: cannot find -lXtst的错误。
安装g++:sudo apt-get install g++;
安装编译X11用到的库:sudo apt-get install libx11-dev libxext-dev;
安装libxtst-dev:sudo aptitude install libxtst-dev;

三:编译及安装qt-x11-opensource-src-4.5.0
qt-x11版本可以产生qt开发工具,如designer,qvfb,嵌入式开发有了qvfb,就可以不需要实际的开发板,也可以开发qt应用程序了。
    tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2
    cd qt-x11-opensource-src-4.5.0
    ./configure
    make
    make install
这里需要比较长的时间,我花了两个半小时左右吧,所以可以先去做的东西哦,呵呵。默认安装在/usr/local/Trolltech/Qt-4.5.0下。先不要删除源程序。

四:编译配置QtEmbedded-4.5.0-x86
   先切换到root用户,这样会比较安全。
  sudo su
解压:tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2
重命名: mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86

配置编译:
  cd qt-embedded-linux-opensource-src-4.5.0-x86
  ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb
  make
  make install

建立脚本文件,setenv.sh,即配置环境变量:
  export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
  export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:$PATH
  export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:$LD_LIBRARY_PATH

这个脚本是在你要编译x86版QT应用程序前要先执行的。它指定了一些引用。

五:编译安装tslib1.4
安装编译过程需要用到的程序:
  apt-get install autoconf
  apt-get install automake
  apt-get install libtool
配置编译:
  tar xzvf tslib1.4.tar.gz
  cd tslib
  source autogen.sh 生成./configure
  ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
   make
安装:
make install-strip 生成瘦身应用程序和库打包(strip的本意是剥光)
tar czvf tslib.tar.gz tslib (打包)
后面你可以把这个包解压放在你的开发板的你想法的地方。
设置环境变量。校准触摸屏这个是在开发板上的shell程序。
        export TSLIB_ROOT=/usr/local/tslib
        export TSLIB_TSDEVICE=/dev/event0
        export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
        export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
        export TSLIB_CALIBFILE=/etc/pointercal
        export TSLIB_FBDEVICE=/dev/fb0
        export QWS_MOUSE_PROTO=Tslib:/dev/event0
需要注意的是/dev/event0,它是在/dev下的节点,不同的linux版本这里可能不一样,网上有的是/dev/input/event0。最后还要校准。
在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:
        [root@FriendlyARM bin]# ./ts_calibrate

六:编译安装QtEmbeded-4.5.0

tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm
cd qt-embedded-linux-opensource-src-4.5.2-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/usr/local/tslib/include -L/usr/local/tslib/lib

注:以上直接复制到终端可能会因为编码等原因提示错误,其实以上在配置你的arm版本的,如果有错误的话,会提示你./configure的用法,你也可以看一看。 -I/usr/local/tslib/include -L/usr/local/tslib/lib这两个路径是根据你的tslib放的位置定的,如果你放在根目录,则为-I/tslib/include -L/tslib/lib

make
make install

若编译的过程中出错,在重新make前需要执行make clean,在./configure,再执行make

安装默认的目录在/usr/local/trolltech/QtEmbedded-4.5.0-arm


打包编译安装好的QtEmbedded库文件以备以后使用:
   # tar czvf QtEmbedded-4.5.0-arm.tar.gz QtEmbedded-4.5.0-arm
在编译ARM版QT应用程序前建立环境变量:
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin/:$PATH
Export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib/:$
LD_LIBRARY_PATH



最后:需要把一些库放进板子上
复制字库文件:
   把PC 机上/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib/fonts 目录上所有字库文件CP 到mini
2440上/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib/fonts 上
复制运行库:
   
   在PC 机上复制下列文件到mini 2440上/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib
libQtGui.so.4 libts-0.0.so.0 libQtCore.so.4 libQtNetwork.so.4
一般在PC 机上/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib/和/tslib/上可以找到上述文件。复制时注意如果需要复制的文件是链接文件,则把被链接文件都要复制上。



另注意:

QT加触摸屏的库有两种方式:一是加载它自身的库,二就是用tslib。
具体资料各位先网搜一下,往后我有整理我会传上来。


谢谢各位的浏览!!



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/106866/showart_2123905.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP