Qt嵌入式开发环境搭建


1、Qt版本介绍

按照不一样的图形界面来划分,分为四个版本:
一、Win32版:适用于windows平台
二、X11版:适用于各类X系统的Linux和Unix平台
三、Mac版:适用于苹果的MacOS
四、Embedded版:适用于具备帧缓冲(Frame buffer)的linux平台
Qtopia是基于qt开发的一个软件平台,Qtopia是构建于Qt/E之上的一系列应用程序,在这个平台上咱们能够开发各类应用程序。2008年,TrollTech公司被Nokia收购后,Qtopia被从新命名为Qt Extended。 Nokia在推出了Qt Extended的最新版Qt Extended 4.4.3以后的2009年3月3日,决定中止Qt Extended的后续开发,转而全心投入Qt的产品开发,并逐步会将一部分Qt Extended 的功能移植到Qt的开发框架中。因此总的来讲,QT也就三种:面向桌面的x十一、面向嵌入式的Qt/E、以及面向嵌入式带各类应用程序的Qtopia桌面系统!!!linux

2、好比是Qt的各类版本介绍

一、Qt的安装程序(包含了QtCreator,QtAssistant)
Windows--x86--msvc2012_64_opengl :表示window平台,msvc2012能够与VS2012进行结合使用,64位应用程序,要求电脑装的是64位操做系统;opengl表示支持openGL的绘图模式
Windows--x86--mingw48_opengl :window平台下的mingw48编译器进行编译。
二、Qt的库的源码包
三、Qt安装包的下载网址:http://qt-project.org/downloads 若是想下载Qt的之前版本,能够在上面网址的最下面的一栏有个Archive for old versions ,进去就能够下载qt的之前版本了。web

3、嵌入式Qt开发环境的搭建

1.预备知识,嵌入式qt开发环境的安装方法不少,qt的版本也不少。有点让人不知所措,不知该按哪一种方法去安装。刚开始总不知其几个版本之间的关系。如今也只知道其大概的一个关系,下面理清一下:据我所知的qt版本有:

1 、t-x11-opensource-src-4.3.2.tar.gz
2 、qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2
3 、qt-everywhere-opensource-src-4.8. 5.tar.gz
4 、QtSdk-offline-linux-x86-v1.2.1.run
5 、qt-creator-linux-x86-opensource-2.5.0.bin
这些版本真有些让人眼花缭乱。后通过一番的研究和请教,终于对这几个版本之间的关系有点眉目了。
首先网上有人说安装 1和2,就能够了,由于1能够提供Qt designer 和qvbf,而后2能够提供嵌入式编译库,二者安装后就能够搭建一个嵌入式qt开发环境了,其实没错,不过已通过时了,由于如今有了Qt creator。Qt creator 就包含了 Qt designer和qvbf,所以咱们仅仅安装5的版本就能够替代1的安装。不过2也仍是要安装,不过了,像2那种版本的编译库如今已经有了更加齐全的库替代,那就是3了。而4就是5的升级版了,它不只能够包含5拥有的全部东西,并且能开发嵌入式应用程序,不过暂时还没测试。
构建Qt/Embeded的交叉编译环境须要3个Qt开发环境:
Qt的桌面开发环境:在linux中全安装qt,用它编译好的程序后,能够直接用“./”运行。
Qt/Embeded(x86)环境:在宿主机平台模拟编译和调试目标机程序的环境,带有qvfb功能,在PC机上能够模拟应用程序在arm开发板上的运行状况。用此编译好的程序,只用“./”命令不能够运行,必须加上参数 -qvfb -qws。
Qt/Embeded(ARM)交叉编译环境:编译好的程序,用于在arm平台上运行。
首先要准备好交叉编译所须要的软件包:
(1)arm-linux-gcc-4.4.3-20100728.tar.gz(交叉编译环境)
(2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源码)
(3)qt-creator-linux-x86_64-opensource-2.5.2.bin(个人系统是64位,因此选择x86_64)
(4)tslib-1.4.tar.gz(触摸屏校验工具)
其中(2)和(3)在http://download.qt-project.org/archive/ 进行下载。sql

2.环境的搭建
2.1 系统环境

主机操做系统:ubuntu10.04
主机编译器:gcc4.4.3,
交叉编译器:arm-linux-gcc-4.3.3ubuntu

2.2 安装交叉编译器

(1)首先以root用户登入
(2)复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里
(3)解压命令tar xvzf arm-linux-gcc-4.3.2 -C /
注意以上命令必需要有-C并且是大写的后边有个空格也要注意
(4)配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上 下面代码windows

export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH
从新打开一个终端,使上面的配置文件生效;输入命令 arm-linux-gcc -v; 若是出现gcc的版本信息,就表明交叉编译器安装成功,会输出gcc的版本号;bash

2.3 安装触摸屏校验工具

把tslib-1.4.tar.gz放到一个目录下,好比/opt目录下。接着执行命令以下:
#tar zxvf tslib-1.4.tar.gz
执行命令cd tslib,进入tslib当前目录,接着执行命令以下:
#./autogen.sh
而后接着执行配置命令:
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
最后执行编译命令和安装命令以下:
1. make
2. make install
若是以上步骤没错,则能够在/usr/local/tslib下出现咱们须要的库文件,这些库文件咱们移植时会用到。
编译期间出现的错误:./autogen.sh: 4: autoreconf: not found
解决办法:sudo apt-get install autoconf automake libtool框架

2.4 安装QtCreator

qt-creator-linux-x86_64-opensource-2.5.2.bin 拷贝到linux系统中,在终端中把路径切换到qt-creator-linux-x86_64-opensource-2.5.2.bin所在的路径,运行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin 就会出现图形安装界面;下面的安装步骤就和咱们在windows下安装软件差很少。
注意:下的版本要和你的操做系统相匹配,32位的系统下对应32位的应用程序;编辑器

2.5 编译Qt库源码
2.5.1 解压

将源码qt-everywhere-opensource-src-4.8.5.tar.gz 进行解压,并复制三份到/usr/local目录下,并分别命名为qt-pc,qt-x86,qt-arm工具

2.5.2 编译PC版

进入qt-pc目录,执行以下操做:
#./configure
#make
#make install
编译过程当中出现的问题:
出错:Basic XLibfunctionality test failed!
这个错误主要是由于,XLib库没有安装,因此在编译X11平台时,应该保证,如下命令正确执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev
注意:可使用 make confclean 命令 把之前的配置信息清除掉,而后再从新配置。测试

2.5.3 编译x86版

进入qt-x86目录,执行以下操做:
# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# make
# make install
安装过程比较长,没有碰到过错误。
编译安装PC版中的 qvfb:
进入qt-pc/tools/qvfb/目录,执行以下操做:
#make
编译完毕,将qt-pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.8.5/bin目录。
编译qvfb时,出现了以下错误:
x11keyfaker.cpp:48:34: 致命错误: X11/extensions/XTest.h:没有那个文件或目录
编译中断。make: *** [.obj/release-shared/x11keyfaker.o] 错误 1
解决方法:sudo apt-get install xorg-dev
若是makefile中没有-lXtst选项,则修改makefile 中 LIBS 选项: 添加 -lXtst选项

2.5.4 编译ARM版

必须加上“-prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm ”参数, 否则安装后不在QtEmbedded-4.8.5-arm文件夹下,而是覆盖了QtEmbedded-4.8.5。

# ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm  
-opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools -nomake docs
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
若是放弃配置,则使用命令:# make confclean
编译:# make
安装:# make install

安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.8.五、QtEmbedded-4.8.五、QtEmbedded-4.8.5-arm。

2.6 安装完后
2.6.1 qvfb的测试

运行qvfb,提示了以下错误,在网上也查了不少种解决办法,最后仍是没有解决; 有的说要从新编译内核,并带上参数;以为比较麻烦,就没有去尝试;不过这个错误并不影响咱们仿真模拟Qt4程序。

2.6.2 QtCreator编译前的配置

X86的调试编译与调试
(1)打开QtCreator ,工具---->选项--->构建和运行 进行设置,在Qt版本菜单下,手动设置选择qmake路径
(2)打开QtCreator 对其进行设置,点击左边的项目,选择运行,对其进行设置,在参数里添加 -qws参数
(3)编译与运行,如今终端 输入命令:qvfb -width 800 -height 480 & 打开虚拟缓冲端;而后就能够在QtCreator对程序进行编译、运行了;

关于ARM移植的那部分尚未作,等之后本身作的话,再补充。

总结

想用Qt4编写一个俄罗斯方块的游戏,并把它移到ARM版上;开始了Qt的交叉编译环境的搭建;惟有编译qvfb时,遇到的麻烦最多。