近期计划学习嵌入式编程,所以开始学习Qt,原来知道嵌入式门槛高,经过这两天的测试得出结论:的确不低。
满打满算安装Qt已经花了我一周的时间(还有很多朋友和我一起搞的),接下来会在花一周的时间把这些经验和资料整理出来,一是防止自己忘记,二十给大家有 个借鉴,三是如果有更方便更简洁的方法请网友一定告诉我,因为这个安装过程是很痛苦的。
首先把安装需要的文件全部列举出来:
qt-x11-opensource-src-4.5.0.tar.bz2
qt-embedded-linux-opensource-src-4.5.0.tar.bz2
( 下载地址:ftp://ftp.qtsoftware.com/qt/source/ )
arm-linux-gcc-4.3.2.tgz
(我是在友善的micro2440资料光盘里得到的)
zlib-1.2.3.tar.gz
(zlib软件包所包含的库经常被一些软件的压缩或解压缩函数用到,所以安装文件的时候经常会用到.
我的虚拟机平台是Vmware 7 ,Linux版本是Ubuntu 9.10 , Qt安装的版本是4.50。
好的,下面我就开始安装Qt嵌入式开发环境:
第 一步:为了获得比较快的更新速度,我们可以增加一些台湾的源,同时更新一下g++编译器和x11库(所谓x11就是指 x window),(参考文章:http://www.linuxidc.com/Linux/2009-12/23132.htm)
方法:
1. sudo gedit /etc/apt/sources.list编辑你的源列表,在最后添加下面列表中的源(注意不要全部添加),复制到你的列表中,然后保存列表。
deb http://tw.archive.ubuntu.com/ubuntu/ karmic main universe restricted multiversedeb http://tw.archive.ubuntu.com/ubuntu/ karmic-updates universe main multiverse restricteddeb http://tw.archive.ubuntu.com/ubuntu/ karmic-proposed universe main multiverse restricteddeb http://tw.archive.ubuntu.com/ubuntu/ karmic-security universe main multiverse restricteddeb http://tw.archive.ubuntu.com/ubuntu/ karmic-backports main multiverse restricted universedeb-src http://tw.archive.ubuntu.com/ubuntu/ karmic main universe restricted multiversedeb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-security universe main multiverse restricteddeb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-updates universe main multiverse restricteddeb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-proposed universe main multiverse restricteddeb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-backports universe main multiverse restricted
2. sudo aptitude update 更新源列表信息
3. 更新g++ 和libx11
sudo apt-get install libc6-dev g++ gcc
sudo apt-get install libx11-dev
第二步:更新你的系统的更新管理器
方法:系统 — 系统管理 — 跟新管理器
第三步:安装arm-linux-gcc-4.3.2.tgz
1,我们把 arm-linux-gcc-4.3.2.tgz文件放到了home目录下,然后切换到相应目录
2, # sudo tar xvzf arm-linux-gcc-4.3.2.tgz -C /
注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,
在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc 安装到/usr/local/arm/4.3.2 目录
3, 把编译器路径加入系统环境变量,运行命令
# sudo gedit /root/.bashrc
编辑/root/.bashrc 文件,在最后一行加上 export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存退出。如图:
4, 重新登录系统,使以上设置生效,在命令行输入 arm-linux-gcc –v,会出现如下信息,
这说明交叉编译环境已经成功安装。
如果在这里出现问题,请参看 “ 交叉编译环境的建立” 一文。
第四步:安装zlib-1.2.3.tar.gz
可以到zlib官方网站:http://www.zlib.net下载 zlib-1.2.3.tar.gz ,也可以在ubuntu中
$wget http://www.zlib.net/zlib-1.2.3.tar.gz 用这种方式下载文件包
我们这里已经下载好了文件并把zlib-1.2.3.tar.gz 文件放到了home目录下,然后切换到相应目录
$ tar -xvzf zlib-1.2.3.tar.gz
$ cd zlib-1.2.3.tar.gz
$ ./configure
$ make
$ sudo make install
第五步:安装新立德的软件更新包
如果有的Ubuntu的版本事先安装好了,这一步就可以跳过,不过大家最好看下,否则会在 安装qt-x11-opensource-src-4.5.0的时候出现 /usr/bin/ld:cannot find – lXext 错误。
大家可以在 系统 — 系统管理 — 新立德软件包管理 找到新立的软件包,然后搜索 libxext6 , libxext-dev 这个是两个主要的。顺便也可以把其他相关的包更新 如:libfreetype6-dev , libavahi-gobject-dev , libsm-dev , libxrender-dev , libfontconfig1-dev
第六步:编译及安装qt-x11-opensource-src- 4.5.0
qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。
方法:
tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2
cd qt-x11-opensource-src-4.5.0
./configure
make
sudo make install
历经漫长的编译过程,我这里用了5个小时,默认安装在/usr/local/Trolltech/Qt-4.5.0下. 这时候在/usr/local/Trolltech/Qt-4.5.0/bin这 个目录下,应该可以找到qmake 这个文件。然后打开终端
$ cd /usr/local/Trolltech/Qt-4.5.0/bin
$ qmake
会出现qmake的帮助文档:
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn’t need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
……….
编译完成后源程序不要删除,还有 用。这里一定要注意,千万不要因为空间不够了而删掉编译好的源程序,因为我们下面还要编译qvfb,要用到这些编译好的源代码。
到此时 我们QT4.5已经安装好了。此时 诺基亚已经推出了QT Creator,这个装一些也是很不错的,在软件包管理器里面直接搜索然后标记安装就可以了,速度是很慢的,一定要形容的话龟速,所以大家一定要有耐心。 如果你不想装QT Creator IDE的话,这一步可以略过。
第七步:编译及安装qt-embedded-linux- opensource-src-4.5.0.tar.bz2
方法:
1,在 home目录下分别解压缩qt-embedded-linux-opensource-src-4.5.0.tar.bz2 为两个文件夹
分别为 qt-embedded-linux-opensource-src-4.5.0-x86
qt-embedded-linux-opensource-src-4.5.0-arm
2,安装 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
//执行configure文件
make //编译
sudo make install //安装
3,安装qt-embedded-linux- opensource-src-4.5.0-arm
cd qt-embedded-linux-opensource-src-4.5.0-arm
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm
make //编译
sudo make install //安装
这样就安装完毕了,此时我们可以看到在/usr/local/Trolltech/ 目录下多出来两个文件夹分别是 QtEmbedded-4.5.0-arm 和 QtEmbedded-4.5.0-x86 在她们的bin目录下都可以找到qmake 这个文件。
第八步:重新编译qvfb
做到 这一步还有qvfb没有编译,到qt-x11-opensource-src-4.5.0中 重新编译qvfb即可
cd qt-x11-opensource-src-4.5.0
cd /tools/qvfb
make
会在qt-x11-opensource-src-4.5.0/bin下 生成qvfb这个文件,
其实呢,这一步是经常有问题的,因为Ubuntu总会编译失败,报错。
错误1 cannot find -lXtst
在上面我们安装新立德的安装包的时候其实已经把这个问题解决了,如果大家出现这个错误请在检查是不是有忘 记更新的包。
我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下
cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin
第九步:测试
cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books
qvfb -width 640 -height 480 &
./books -qws
是提 示找不到gvfb的
但是系统却给了提示,说可以用
sudo apt-get install qt3-dev-tools-embedded 修复,
然后上面的测试就通过了
如图
这个界面是在qvfb -width 640 -height 480 &后出现的,也就是我们的qvfb
然后在终端里输入
./books -qws
然后如图
后记:
在使用的时候无论 qt-x11-opensource-src-4.5.0 还是 qt-embedded-linux-opensource-src-4.5.0-x86 和
qt-embedded-linux-opensource-src-4.5.0-arm 都要修改环境变量 ,所以建立一个脚本方便以后使用。
(1)qt- x11:
建立一个文 本,然后修改名字为setenv.sh,复制蓝色内容进去
添加如下内容:
PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/Qt- 4.5.0中。
(2)qt-embedded-x86:
建立一个文本,然后修改名字为setenv.sh,复制蓝色内容进去
添加如下内容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-x86 中。
(3)qt- embedded-arm:
建立一个文本,然后修改名字为setenv.sh,复制蓝色内容进去
添加如下内容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH
保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-arm中。
使 用:
我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:
cd /usr/local/Trolltech/Qt-4.5.0
source setenv.sh
然后就可以用qmake designer等工具了.