标题:轻松搭建Qt Embedded开发环境
作者:superyongzhe
日期:2009-08-13 23:16
内容:
想起自己当初刚开始学习Qt的那个苦恼,不知经历了多少次的失败才把开发环境搭建起来,现在就把它总结一下,希望对大家有所帮助。
一、 准备工作
1. 硬件环境
A. 主机:x86系列PC机。
B. 开发板:友善之臂mini2440。
C. 通讯连接:串口和USB。
2. 软件环境
A. 主机操作系统:VMware虚拟机下的Redhat linux 9.0(完全安装) 。
B. 开发板操作系统:嵌入式Linux,内核版本为2.6.13。
C. 交叉编译器:arm-linux-gcc-3.3.2。
D. 通讯方式:虚拟机与主机(Windows XP)使用共享文件夹通讯,主机与开发板使用DNW和Secure CRT通讯。
3. 相关说明
A. 命令:所有以#开头的均为在shell中执行的命令。
B. 交叉编译器位置:/usr/local/arm/3.3.2。
C. 工作目录:默认为/opt/qt。
D. 脚本注释:均放在命令下一行的圆括号内。
4. 下载源码包
A. 工程管理tmake-1.1.1.tar.gz,用于生成Makefile。
B. Qt/X11软件包qt-x11-2.3.2.tar.gz,用于生成qvfb等开发工具。
C. Qt/Embedded软件包qt-embedded-2.3.7.tar.gz,Qt/Embedded图形库。
D. Qt的PDA应用框架qtopia-free-1.7.0.tar.gz,可以生成一个Qt的PDA程序。
5. 编译前准备
A. 建立工作目录
#mkdir /root/qt
#cd /root/qt
#mkdir x86-qt
(仿真开发目录)
#mkdir arm-qt
(交叉编译目录)
#cp …
(复制所有源码包到此目录)
B. 解压源码包
#cd /root/qt/
#tar zxvf tmake-1.1.1.tar.gz –C x86-qt
#tar zxvf tmake-1.1.1.tar.gz –C arm-qt
#tar zxvf qt-x11-2.3.2.tar.gz –C x86-qt
#tar zxvf qt-x11-2.3.2.tar.gz –C arm-qt
#tar zxvf qt-embedded-2.3.7.tar.gz –C x86-qt
#tar zxvf qt-embedded-2.3.7.tar.gz –C arm-qt
#tar zxvf qtopia-free-1.7.0.tar.gz –C x86-qt
#tar zxvf qtopia-free-1.7.0.tar.gz –C arm-qt
(加压源码包分别到两个目录)
#cd x86-qt
#mv tmake-1.1.1 tmake
#mv qt-x11-2.3.2 qt-x11
#mv qt-embedded-2.3.7 qt
#mv qtopia-free-1.7.0 qtopia
#cd ../arm-qt
#mv tmake-1.1.1 tmake
#mv qt-x11-2.3.2 qt-x11
#mv qt-embedded-2.3.7 qt
#mv qtopia-free-1.7.0 qtopia
(为了方便,给目录改名)
二、 搭建Qt/Embedded仿真 ..
#1 [rqzrqh 08-14 14:25]
很麻烦的样子。。
#2 [superyongzhe 08-14 15:09]
如果你只想仿真的话就只需要第二章就可以了,而且可以不用编译Qtopia。
#3 [hesicong 08-14 22:49]
那对于最近的QT Embedded 4.5呢?Qtopia似乎已经很老了
#4 [allenli 08-17 09:47]
借着人气问一下各位大侠,我刚开始接触QT,使用开源版QT4.5编译后能够在arm+linux开发板上运行吗?我看到商业版的下载板块有Embedded linux,而开源只有开发套件啊。
#5 [zhangzuoyi 08-19 14:08]
楼主好帖,跟着楼主的步子走到 ‘3. 编译Qt/Embedded’中
#export QTDIR=$PWD/qt
#export PATH=$QTDIR/bin:$TMAKEDIR/bin: $PATH
#cd qt
(设置环境变量)
#cp /qtopia/src/qt/qconfig-qpe.h src/tools/
(从Qtopia源码中复制配置文件)
#./configure –system-jpeg –gif –system-libpng –system-zlib –platform linux-generic-g++ -qconfig qpe –depths 16,24,32
(配置Qt/Embedded图形库,然后回答两个yes)
#make –C src
后出现
$ make -C src
make: Entering directory `/opt/qte/x86-qt/qt/src'
g++-c -I/opt/qte/x86-qt/qt/include-pipe -DQWS -fno-exceptions -fno-rtti -O2 -Wall -W -DNO_DEBUG -fPIC -DQT_NO_IMAGEIO_MNG -DQT_NO_QWS_VOODOO3 -DQT_NO_QWS_MACH64 -DQT_NO_QWS_MATROX -DQT_NO_QWS_VNC -DQT_NO_QWS_VGA_16 -DQT_NO_QWS_DEPTH_4 -DQT_NO_QWS_DEPTH_8 -DQT_BUILTIN_GIF_READER=1 -DQT_NO_IMAGEIO_MNG -DQT_NO_SM_SUPPORT-I/usr/X11R6/include -I3rdparty/kernel -I3rdparty/tools -o allmoc.o allmoc.cpp
/opt/qte/x86-qt/qt/include/qdatetime.h:51: warning: ‘class QDate’ has virtual functions but non-virtual destructor
/opt/qte/x86-qt/qt/include/qsortedlist.h: In destructor ‘QSortedList::~QSortedList()’:
/opt/qte/x86-qt/qt/include/qsortedlist.h:51: error: there are no arguments to ‘clear’ that depend on a template parameter, so a declaration of ‘clear’ must be available
/opt/qte/x86-qt/qt/include/qsortedlist.h:51: error: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/opt/qte/x86-qt/qt/include/qasyncimageio.h: At global scope:
/opt/qte/x86-qt/qt/include/qasyncimageio.h:48: warning: ‘class QImageConsumer’ has virtual functions but non-virtual destructor
/opt/qte/x86-qt/qt/include/qpolygonscanner.h:48: warning: ‘class QPolygonScanner’ has virtual functions but non-virtual destructor
/opt/qte/x86-qt/qt/include/qrangecontrol.h:52: warning: ‘class QRangeControl’ has virtual functions but non-virtual destructor
/opt/qte/x86-qt/qt/include/qtooltip.h ..