在进行Qt/E的移植和触摸屏校正的实践过程中,不得不感慨一下国内的学术文章真是天下一大抄,想
找点有价值的资料还真得累个精疲力竭。可恶的是,转载的文章也不标明,搞得就像是自己原创的一样,其中有多少人真正实践过了,不得而知。废话就到此为止,
牢骚也少发了,下面说说我的移植过程吧(前前后后一共耗时3天),既为了方便自己,也希望对“不幸”搜到这篇文章的读者有所帮助。
参考了下面几篇
文章:
http://www.qtcn.org/bbs/read.php?tid=10373
http://blog.ifeng.com/article/1848021.html
http://blog.chinaunix.net/u2/86708/showart_1924834.html
http://www.cnblogs.com/wangtianxj/archive/2009/05/12/1454729.html
首
先,有必要区分几个名词:Qt,Qt/E,Qtopia Core, Qtopia。(引用自Qt中文论坛)Qt泛指Qt的所有桌面版本,比如
Qt/X11,Qt Windows,Qt
Mac等。由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Qt都指用于Linux/Unix的Qt/X11。
Qt/E(Qt/Embedded)是用于嵌入式
Linux系统的Qt版本。Qt/E去掉了X Lib的依赖而直接工作于Frame
Buffer上,因而效率更高,但它并不是Qt的子集,而应该是超集,部分机制(如QCOP等)不能用于Qt/X11中。
Qtopia是一个构建于Qt/E之上的类似桌面系
统的应用环境。相比之下,Qt/E是基础类库。
Qtopia Core:就是原来的Qt/E,大概从Qt 4开始改名,把Qtopia
Core并到Qtopia的产品线中去了。但实际上Qtopia Core就相当于原来的Qt/E,仍然作为基础类库。
另外,似乎奇趣最近又把Qtopia
Core改名叫做Qt for Embedded Linux了,不知道是不是因为Qtopia Core搞得大家都很糊涂,没人来买的缘故。
1、系统环境以及软件准备
主
机操作系统:Ubuntu 8.04
主机编译器:gcc 版本 4.2.4 (Ubuntu 4.2.4-1ubuntu4)
交叉编译
器:arm-linux-gcc 3.4.1
软件安装包:(软件包事先下载到了主目录下的Qt目录)
qt-embedded-linux-opensource-src-4.5.3.tar.gz
qt-x11-opensource-src-4.5.3.tar.gz
tslib-1.4.tar.gz
Qt
的软件安装包可以到http://ftp3.ie.freebsd.org/pub/trolltech/pub/qt/source/下
载,tslib
2、编译安装qt-x11
qt-x11版本可以产生Qt开发工具,如qmake、
designer、qvfb(Qt/Embedded Virtual Framebuffer)等等。借助qvfb工具就可以在PC上仿真开发Qt
Embedded 的应程序。其实编译qt-x11的主要目的是为了得到qvfb这个工具,为此花费好几个钟,真够郁闷。
A、编译安装qt-x11到/usr/local
/qt-x86目录(进入到Qt目录)tar xvzf qt-x11-opensource-src-4.5.3.tar.gz
cd qt-x11-opensource-src-4.5.3
./configure -prefix /usr/local/qt-x86 -qvfb
make
sudo make install
ps:配置参数中记得一定要有
-qvfb,否则后面的qvfb工具无法编译。这一编译过程十分耗时,约三个小时。
B、编译安装qvfb
执行完上面的步骤后,然后就可以编译安装qvfb了。cd qt-x11-opensource-src-4.5.3/tools/qvfb/
make
sudo make install (注:是在qt-x11-opensource-src-4.5.3/tools/qvfb/目录下执行此命令的)
这样qvfb就被安装到/usr
/local/qt-x86/bin目录下了。
C、设置环境变量,我只是简单的设置一下cat >> ~/.bashrc
PATH=/usr/local/qte-x86/bin:\$PATH
fi
EOF
source ~/.bashrc 或 . ~/.bashrc
3、编译安装
qt-embedded(进入到Qt目录)
为了程序开发的便捷性,安装了x86版和arm版,先在PC上使用x86版和qvfb开发,完成以后再使用arm版交叉编
译放到