Ubuntu10.04下如何移植QtE?

运维 系统运维
Ubuntu的所有发行版本都可以免费获取,所以使用Ubuntu系统的用户也越来越多。下文是介绍Ubuntu10.04下如何移植QtE的方法,具体内容如下所述。

Ubuntu的所有发行版本都可以免费获取,所以使用Ubuntu系统的用户也越来越多。下文是介绍Ubuntu10.04下如何移植QtE的方法,具体内容如下所述。

最近弄QTE的移植,真是不胜其烦。现在把他整理出来,作为分享。

首先是软件包的各个版本

Ubuntu10.04

qt-everywhere-opensource-src-4.6.3.tar.gz

arm-linux-gcc-3.4.1.tar.bz2

qt-sdk-linux-x86-opensource-2010.04.bin

tslib-1.4.tar.gz

一.选择交叉编译器

我不知道,移植QT对交叉编译器有固定的版本要求。我查了很多资料,也没得到个什么确切的说法。比较靠谱的一个说法是“arm-linux-gcc3.4.1算是一个已经比较旧的版本了,现在我们在Linux2.6.29环境下,用的是4.3.2的编译器。不过,因为还有一个S3C2410+Linux2.4.18的产品线,所以仍然没有舍弃3.4.1。”。而且在其他参数配置相同的情况下,我用自己编译的arm-softfloat-linux-gnu-gcc3.4.5总是会提示这样那样的错误。对此我办法解释,只好用arm-linux-3.4.1.

安装arm-linux-3.4.1。这个比较简单:

(1).解压

#tar-jxvfarm-linux-gcc-3.4.1.tar.bz2得到一个usr文件夹。

(2).添加环境变量:

#vi/etc/bash.bashrc

在末尾加上:exportPATH=$PATH:/*解压所在文件夹*/usr/local/arm/3.4.1/bin:

(3).使新的环境变量生效:

#source/etc/bash.bashrc

(4).检查路径是否设置正确:

#echo$PATH

(5).检查交叉编译工具是否安装成功:

#arm-linux-gcc-v

出现版本信息就OK了

二.编译tslib1.4

(1)解压源代码:

tarzxvftslib-1.4.tar.gz

cdtslib-1.4

(2)安装一些工具:

sudoapt-getinstallautomakelibtool

(3)执行脚本生成configure文件

./autogen.sh

(4)执行configure生成Makefile文件

echo“ac_cv_func_malloc_0_nonnull=yes”>$ARCH-linux.cache

./configure--host=arm-linux--cache-file=$ARCH-linux.cache--prefix=/home/linux/tslib-3.4.1

(5)编译安装

 

  1. make  
  2.  
  3. makeinstall 

 

(6)拷到板子文件系统上

 

  1. cp-a/home/linux/tslib-3.4.1/source/rootfs 

 

(7)修改ts.conf文件

 

  1. vimts.conf 

 

将第二行的#module_rawinput的"#"去掉,并使module_rawinput顶格。

(8)设置开发板的环境变量。这里写成脚本文件

 

  1. vimqtsetenv.sh  
  2.  
  3. exportTSLIB_ROOT=/tslib-3.4.1  
  4.  
  5. exportTSLIB_TSDEVICE=/dev/event0  
  6.  
  7. exportTSLIB_CONFFILE=/tslib-3.4.1/etc/ts.conf  
  8.  
  9. exportTSLIB_PLUGINDIR=/tslib-3.4.1/lib/ts  
  10.  
  11. exportTSLIB_CALIBFILE=/etc/pointercal  
  12.  
  13. exportPOINTERCAL_FILE=/etc/pointercal  
  14.  
  15. exportTSLIB_FBDEVICE=/dev/fb0  
  16.  
  17. exportQWS_SIZE=320x240 
  18.  
  19. exportQWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0" 
  20.  
  21. exportLD_LIBRARY_PATH=/tslib-3.4.1/lib:$LD_LIBRARY_PATH  
  22.  
  23. exportQWS_MOUSE_PROTO=Tslib:/dev/event0  
  24.  
  25. exportTSLIB_CONSOLEDEVICE=none 
  26.  
  27. exportTSLIB_TSEVENTTYYPE=H3600i 

 

(9)测试。可以运行/tslib/bin下的测试文件了。

三.编译和安装QTE

移植QTE,一般要安装3个版本,一个PC机上的,一个ARM板子上的,一个是没有ARM板子时候仿真用的x86版。

1.首先安装PC版。

这个版本安装方法不少,有的使用qt-sdk-linux-x86-opensource-2010.04.bin,有的使用qt-x11-opensource-src-4.5.0.tar.bz2这样的文件,在Ubuntu下甚至可以方便的使用apt-get:sudoapt-getinstallqt4-dev-toolsqt4-docqt4-qtconfigqt4-demosqt4-designer,这样获取文件和库的最全,designer还是中文界面,不要环境设置等等。但是仍有所不便。这里使用bin文件。

(1)进入qt-sdk-linux-x86-opensource-2010.04.bin所在目录,设置该文件的权限为可执行.

 

  1. chmod+xqt-sdk-x86-opensource-2010.04.bin 

 

(2)安装qt-sdk-linux-x86-opensource-2010.04.bin

 

  1. ./qt-sdk-linux-x86-opensource-2010.04.bin 

 

按默认设置安装就行。安装路径我设置为:/host/mylinux/QT/qtsdk-2010.04

(3)设置环境变量

这里也可以设置脚本文件,方便不同版本的qmake.但是这里奇怪的是,我的脚本文件运行了没效果,不知道怎么搞的。我只好写进系统:

 

  1. vim/etc/profile 

 

在末尾添加:

QTDIR=/host/mylinux/QT/qtsdk-2010.04/qt-//这是设置QT的所在的路径

exportPATH=$QTDIR/bin:$PATH//设置QT可执行命令的目录

exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH//设置QT库文件目录

(4)建立helloworld工程,测试qt。

由于Ubuntu10.04系统不带g++编译器,而qt需要用到g++编译器,我们需要自行安装g++:

 

  1. sudoapt-getinstallg++ 

 

编写一个hello.cpp文件(放在一个hello的目录里)

Hello.cpp内容:

 

  1. #include  
  2.  
  3. #include  
  4.  
  5. intmain(intargc,char*argv[])  
  6.  
  7. {  
  8.  
  9. QApplicationapp(argc,argv);  
  10.  
  11. QLabel*label=newQLabel("helloqt");  
  12.  
  13. label->resize(200,100);  
  14.  
  15. label->show();  
  16.  
  17. returnapp.exec();  
  18.  

 

然后在hello这个文件下依次:qmake-projct,qmakehello.pro,make,生成一个hello可执行文件,运行以下,应该可以看见一个简单的对话框。

(5)如果要安装qtEforx86的话,这里还要编译qvfb.

(a).首先补充一些库文件

 

  1. sudoapt-getinstalllibpng-devlibx11-devlibglui-devxorg-dev 

 

(b).添加一些头文件

将/host/mylinux/QT/qtsdk-2010.04/qt/tools/shared/deviceskin/下deviceskin.h,deviceskin.cpp都拷到/host/mylinux/QT/qtsdk-2010.04/qt/toolsqvfb文件夹下面.

(c).qmake-projectqmakeqvfb.pro

(d).修改Makefile文件,在LIBS选项后面添加-lXtst,注意哦:l是小写,X是大写。

(e)make

2.安装x86+qvfb版

参数没有配置成功,先空着

3.安装arm版

无论是x86还是arm步骤说起来很简单,三板斧(configure,make,makeinstall),但是麻烦在configure的参数,极其变态。不仅仅多,复杂,而且往往别人编译可以用的参数配置到你这里就偏偏不能用。当然作为我们初学者,“盈科而进”的学习是比较踏实的,一步一个坑,每个坑都吃透了。但我相信很少人能这么做。参数本书并不是什么很难的东西,偏偏是环境不一样,参数配置还不一样。我问过很多人,他们的参数都是自己试过成功的,偏偏我拿过来不能用。最叫人火大的是make这一步时间很长,我的机器比较好的,3G的内存,别的什么都不开也要将近两个小时。你等了一个多小时后他才会给出错误代码,效率太低了。

我的步骤:

(1)解压tarzxvfqt-everywhere-opensource-src-4.6.3.tar.gz,

(2)然后进入cdqt-everywhere-opensource-src-4.6.3.

(3)configure

 

  1. ./configure-prefix/host/mylinux/QT/qt-embedded-4.6.3-arm-debug-and-release-qt3support-qt-zlib-qt-libtiff-qt-libpng-qt-libmng-qt-libjpeg-makelibs-nomakeexamples-nomakedemos-nomakedocs-no-cups-iconv-xplatformqws/linux-arm-g++-embeddedarm-little-endian-qt-freetype-depths8,16,24,32-qt-gfx-linuxfb-no-gfx-transformed-no-gfx-qvfb-no-gfx-vnc-no-gfx-multiscreen-no-dbus-qt-sql-sqlite-qt-kbd-qvfb-qt-kbd-tty-qt-mouse-pc-no-glib-plugin-mouse-tslib-I/source/rootfs/tslib-3.4.1/include-L/source/rootfs/tslib-3.4.1/lib-D__ARM_ARCH_5TEJ__ 

 

这里有几点要注意:-D__ARM_ARCH_5TEJ__和-little-endian少了我是通不过,如果你没加并且有幸出错,百度或者google一下错误代码,应该能查的到。网上有大量的资料里这两都没加也通过,这正是叫人郁闷的地方。这个参数配置来自。qt-everywhere-opensource-src是4.6.0的。参数解释也可以看他的。

这里还会有两个选择界面,一个选择o,即是选择开源协议,一个接受协议,填写yes。

(4)make然后是漫长的等待,1~2个小时。

(5)最后sudomakeinstall.一定要sudo。

(6)设置环境变量

这里也可以设置脚本文件,方便不同版本的qmake.写进系统(和上面的不能同时共存):

 

  1. vim/etc/profile 

 

在末尾添加:

QTDIR=/host/mylinux/QT/qt-embedded-4.6.3-arm-//这是设置QT的所在的路径

exportPATH=$QTDIR/bin:$PATH//设置QT可执行命令的目录

exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH//设置QT库文件目录

(7)将安装好的qt-embedd-4.6.3-arm(全拷?????标记一下)拷入arm板子的文件系统/source/rootfs/QT下,

(8)添加tslib环境脚本对QTE相关项

 

  1. vimqtsetenv.sh  
  2.  
  3. exportsetQTDIR=/QT/qt-embedd-4.6.3-arm  
  4.  
  5. exportsetQTEDIR=/QT/qt-embedded-4.6.3-arm  
  6.  
  7. exportPATH=$PATH:$QTDIR/bin  
  8.  
  9. exportQT_QWS_FONTDIR=$QPEDIR/lib/fonts  
  10.  
  11. exportQT_PLUGIN_PATH=$QTDIR/plugins/ 

 

暂时到这里,还有问题没有解决,一个x86+qvfb的安装,一个在板子上运行编好的可执行文件总提示找不到库,还有就是PC机上运行脚本不起作用,等有空再说。

总结:

希望本文介绍的Ubuntu10.04下移植QtE的方法能够对读者有所帮助,更多有关linux系统的知识还有待于读者去探索和学习。

【编辑推荐】

  1. Ubuntu10.10如何取消交换设备?
  2. Ubuntu 11.10 beta1十大功能图解
  3. 教大家把Ubuntu界面改造成Windows7系统
  4. Ubuntu10.04上如何搭建iPhone开发环境?
  5. Ubuntu使用PPA安装最新Plymouth管理器的方法
责任编辑:韩亚珊 来源: 雨木林风
相关推荐

2011-09-07 16:43:10

ubuntuwindowsXP

2011-03-21 16:37:57

2011-08-30 10:37:27

UbuntuJAVA

2011-09-07 10:58:19

UbuntuMySQL

2011-03-14 10:30:15

Ubuntu10.04LAMP

2011-08-30 10:52:47

UbuntuOracle11g

2011-08-29 15:23:11

Ubuntuapache

2011-08-29 11:32:44

UbuntuiPhone

2011-08-30 14:58:26

Ubuntu

2011-08-30 11:21:59

UbuntuGoogle

2011-08-29 14:40:04

UbuntuAndroid

2011-09-07 14:31:59

ubuntu屏幕亮度

2011-08-22 18:03:32

Ubuntupdnsd

2011-08-30 16:17:47

UbuntuAndroid

2010-03-16 10:52:20

Ubuntu10.04

2010-07-13 09:46:09

TomcatUbuntu 10.0

2011-08-30 17:12:27

Ubuntuwindows7

2011-08-30 11:14:15

Ubuntu

2011-04-22 11:03:39

Ubuntufirefox

2011-08-30 11:01:45

点赞
收藏

51CTO技术栈公众号