软件学院 刘豪

47
单单 2-1-2 单单单单单 QTE 单单单单 单单

Upload: cecilia-tucker

Post on 31-Dec-2015

111 views

Category:

Documents


9 download

DESCRIPTION

软件学院 刘豪. 单元 2-1-2 :安装与配置 QTE. 任务 1. 安装与配置 QT/E. 任务. 安装与配置 QT/E, 建立嵌入式 Linux 图形开发环境. 实验目的. ubuntu 10.10 发行版 FS_S5PC100 平台 交叉编译器 arm-none-linux-gnueabi-gcc. 实验环境. 1. 源码下载 下载地址 http://get.qt.nokia.com/qt/source/ 我们选择的版本是 qt-everywhere-opensource-src-4.7.0-beta2.zip. 实验步骤. 2. 解压源码并改名 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 软件学院 刘豪

单元 2-1-2 :安装与配置 QTE

软件学院 刘豪

Page 2: 软件学院 刘豪

任务

任务 1. 安装与配置 QT/E

Page 3: 软件学院 刘豪

实验目的

安装与配置 QT/E, 建立嵌入式 Linux 图形开发环境

Page 4: 软件学院 刘豪

实验环境

ubuntu 10.10 发行版 FS_S5PC100 平台 交叉编译器 arm-none-linux-gnueabi-gcc

Page 5: 软件学院 刘豪

实验步骤

1. 源码下载 下载地址 http://get.qt.nokia.com/qt/source/ 我们选择的版本是

qt-everywhere-opensource-src-4.7.0-beta2.zip

Page 6: 软件学院 刘豪

实验步骤

2. 解压源码并改名 $ tar xvf qt-everywhere-opensource-src-4.7.0-beta2.zip $ mv qt-everywhere-opensource-src-4.7.0-beta2 qt-

everywhere-source $ mkdir qt-everywhere-target

Page 7: 软件学院 刘豪

实验步骤

配置 $ cd qt-everywhere-target $ ../qt-everywhere-source/configure -prefix /qt-everywhere -

embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libtiff -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-gnueabi-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I/home/linux/tslib/include -L/home/linux/tslib/lib

Page 8: 软件学院 刘豪

实验步骤

-prefix <dir> ......... 指定安装目录默认在 /usr/local/Trolltech/QtEmbedded-4.X.X

* -release ........... 此选项在编译过程 QT 会对程序进行优化,在发布软件的时候应该用此选项,是默认选项

* -no-fast ........... 使用通常的 Makefile 来编译,是默认选项

-fast .............. 快速编译,除了封装必要的库,部分步骤省略或者用快速的方法处理

-plugin-sql-<driver> 禁用 / 启用 / 启用插件 对 SQL 的支持

-system-sqlite ..... 启用支持 sqlite 也可用 -qt-sqlite -embedded arm :嵌入式 ARM 架构

Page 9: 软件学院 刘豪

实验步骤

-xplatform qws/ linux-arm-gnueabi-g++ :目标平台的交叉编译器

-shared 编译成共享库 -qt-libjpeg -qt-gif -qt-libpng 等添加对 jpeg 、 gif 、 png 等

格式的图片支持,编译成功后会生成多个 .so 的库文件;这些库文件最终需要拷贝到目标机的文件系统中。

-qt-mouse-tslib 是添加触摸屏支持,笔者在上一小节中将tslib 安装到 /home/linux/tslib 目录下,那么要将用到的tslib 的头文件路径和库文件路径指定好,即: -I/home/linux/tslib/include 和 -L/home/linux/tslib /lib

Page 10: 软件学院 刘豪

实验步骤

4. 编译 $ make 5. 安装 $ sudo make install

Page 11: 软件学院 刘豪

实验步骤

6. 添加环境变量 修改 /etc/bash.bashrc 添加如下内容 export PATH=$PATH:/qt-everywhere/bin

Page 12: 软件学院 刘豪

实验步骤

7. 修改文件系统 $ sudo cp /qt-everywhere /source/rootfs -a 8. 修改 /source/rootfs/etc/profile 添加如下内容 export LD_LIBRARY_PATH=/qt-everywhere/lib:

$LD_LIBRARY_PATH export QWS_SW_CURSOR export set HOME=/root export set QPEDIR=/ qt-everywhere

Page 13: 软件学院 刘豪

实验步骤

9. 修改 / qt-everywhere/bin/qmake $ cd /qt-everywhere/bin $ mv qmake qmke-target

Page 14: 软件学院 刘豪

www.embedu.org14 www.embedu.org14 14

知识点睛知识点睛

Qt 简介 搭建 Qt 开发环境

Page 15: 软件学院 刘豪

www.embedu.org15

Qt Qt 简介简介

Qt 介绍 Qt 是跨平台的应用程序和 UI 框架 ; 它包括跨平台类库、集成开发工具和跨平台 IDE; 开发应用程序 : ” 一次编写、到处编译” ;

官方网站• http://qt.nokia.com

Qt 支持以下平台

Page 16: 软件学院 刘豪

www.embedu.org16

Qt Qt 简介简介

Qt 版本历史 1996 年 Qt 上市 ;

• 最初只是针对 Linux/Unix 系统,只有构建于 Xlib 之上的 X11 版; 1999 年发布 2.0 版本; 2000 年发布 Qt/embedded 版本( GPL );

• 推出在 Qt/embedded 库之上的桌面系统软件 qtopia ; 2001 年发布 3.0 版本

– Qt 3 版本开始支持 Mac 平台 2005 年发布 Qt4 版本

• Qtopia core :与 Qt 不同的类库接口• Qt X11• Qt embedded• Qt windows/winCE• Mac

2008 年 6 月 Trolltech (奇趣科技)被 Nokia 收购 2009 年初, Nokia 决定统一 Qt 开发框架,停止 Qtopia (后改名为 Qt

Extended )的开发 ; 2010 年初, Nokia 宣布使用 Qt 重写 Maemo ;(对抗 andriod , iphone )

Page 17: 软件学院 刘豪

www.embedu.org17

Qt Qt 简介简介

• Qt 应用范围• KDE• Maya• Google earth• Opera 浏览器• Skype 网络电话• QCad• Adobe Photoshop Album• CGAL 计算几何库• ……

Page 18: 软件学院 刘豪

www.embedu.org18

Qt Qt 简介简介

Qt 4.6 新特性 Qt 的最新版本 4.6 。 Qt 4.6 最令人兴奋的新功能是支持

Multi-touch (多点触摸)和手势输入。同时,该版本具有强大的全新图形处理能力,并对 Symbian 、 Maemo 、 Windows 7 、 Mac OS 10.6 等平台提供了支持。

Page 19: 软件学院 刘豪

www.embedu.org19

Qt Qt 简介简介

Qt Embedded linux 和 Qt X11 框架

Page 20: 软件学院 刘豪

www.embedu.org20

Qt Qt 简介简介

Qt X11 所依赖的库

Page 21: 软件学院 刘豪

www.embedu.org21

Qt Qt 简介简介

Page 22: 软件学院 刘豪

www.embedu.org22

搭建搭建 Qt Qt 开发环境开发环境

搭建 Qt X11 开发环境 Qt embedded linux 移植 部署 Qt embedded linux

Page 23: 软件学院 刘豪

www.embedu.org23

搭建 Qt X11 开发环境

搭建 Qt 开发环境,主要要建立的环境包括: Qt X11 动态库 Qt 基本开发工具

• 如 qmake 、 moc 、 uic 等 qtcreator IDE

• Qtcreator 是 nokia 在 qt 4.5 版本之后推出的集成开发环境,集编辑、编译、调试于一体。

Page 24: 软件学院 刘豪

www.embedu.org24

搭建 Qt X11 开发环境

Qt X11 安装 在 PC 上安装 Qt X11 开发环境大概有以下三种:

• 如果是 ubuntu 系统,可以使用” apt-get install” 下载安装 ;

• 第二种方法是从源码安装 ;• 另一种方法是直接安装 SDK;

Page 25: 软件学院 刘豪

www.embedu.org25

搭建 Qt X11 开发环境

如果是 ubuntu 系统,使用 apt-get install 安装最为方便,命令如下: sudo apt-get install libqt4-dev qtcreator 它会自动检测库的依赖关系,并且把所依赖的库安装上。 上面的命令会把 Qt 库、基本工具和 qtcreator都安装上。

安装后的开发环境: Qt 工具 :

/usr/bin/{qmake 、 uic 、 moc 、 designer 、 qtcreator} Qt 库 : /usr/lib/libQt* 头文件 : /usr/include/qt4

Page 26: 软件学院 刘豪

www.embedu.org26

搭建 Qt X11 开发环境

从源码安装方法 该安装方法只会安装 Qt 库和基本工具, qtcreator 要另外安

装。 从网上下载 Qt X11 版本源码编译安装,这种方法需要先前搭

建好基本的编译环境,如 build-essential 工具等。• sudo apt-get install build-essential autoconf

automake1.9 cvs subversion 另外 Qt X11 所依赖的一些图形库也必须安装上,如下:

• sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev

安装好上面的基本编译环境和 Qt X11 所依赖的库后,下一步就可以下载 Qt X11 源码,编译安装。

Page 27: 软件学院 刘豪

www.embedu.org27

搭建 Qt X11 开发环境

下载源码• ftp://ftp.qt.nokia.com/qt/source/• 如下载 qt-every-opensource-src-4.6.3.tar.gz 文件

下载完之后,解压源码、配置、安装。• tar zxvf qt-x11-opensource-src-4.6.3.tar.gz• cd qt-x11-opensourcce-src-4.6.3• 配置前可以使用 ./configure --help查看Qt X11 的配置选项,这里

只是指定 Qt X11 的安装路径,如下:• ./configure -prefix /usr• make –j4• sudo make install

安装后的开发环境• 假如安装的路径是“ /usr/local/Qt-x11-4.6.3” 那么 Qt 工具、 Qt 库、

Qt 头文件分别安装在这个安装目录的 bin 、 lib 、 include 目录下 s

Page 28: 软件学院 刘豪

www.embedu.org28

搭建 Qt X11 开发环境

安装 SDK

• Nokia 提供的 SDK 包含 Qt 库、基本工具和 qtcreator 。• SDK 下载网址:

– ftp://ftp.qt.nokia.com/qtsdk/– 如下载: qt-sdk-linux-x86-opensource-2010.03.bin

• 使用命令行执行它,就会弹出安装向导对话框,根据向导提示安装就可以了。

• 该安装方法不能安装 X11 系统的基本图像库,因此和编译安装方法一样,必须手动安装基本图像库:– sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev

libxext-dev

• 这样就搭建好了 Qt SDK 开发环境

Page 29: 软件学院 刘豪

www.embedu.org29

Qt embedded linux 移植

安装交叉工具链 Qt 4 建议使用 GCC 4 版本以上的工具链,这里我们使用 GCC

4.1.1 版本的交叉工具链。安装方法如下:• mkdir /opt/crosstool• cd /opt/crosstool• tar jxvf XXX/4.1.1_softfloat_withlib.tar.bz2

– 上面的 XXX表示压缩包所在的路径。

• 修改脚本“ .bashrc” ,配置环境变量:– vim /home/farsight/.bashrc– 在文件末尾添加一行:– export PATH=/opt/crosstool/4.1.1/bin:$PATH

• 这样,每次打开终端就可以使用 arm-linux-gnu-gcc 等工具。

Page 30: 软件学院 刘豪

www.embedu.org30

Qt embedded linux 移植

交叉工具链的结构 程序开发环境主要包括:编译工具、库和头文件。 -- 4.1.1 |-- bin |-- arm-linux-gnu | |-- include | |-- lib

• 4.1.1 版本的工具链的编译器安装在 bin 目录下:• 交叉编译程序时,链接的库安装在 arm-linux-gnu/lib

下:• 头文件在 arm-linux-gnu/include 下:

Page 31: 软件学院 刘豪

www.embedu.org31

Qt embedded linux 移植

交叉编译基本库 交叉编译 Qt embedded linux 源码之前,先检测交叉工具链有没有安装一

些必要的基本库,主要查看 zlib 、 libjpeg 、 libpng 、 freetype 库有没有安装上;

如:• ls 4.1.1/arm-linux-gnu/lib

• 如果这些库没有安装的话,需要下载源码交叉编译安装。

Page 32: 软件学院 刘豪

www.embedu.org32

Qt embedded linux 移植

交叉编译 zlib (数据压缩库)• 从 http://www.zlib.net/下载源码• 编译安装步骤如下:

– tar jxvf XXX/zlib-1.2.5.tar.bz2– cd zlib-1.2.5/– CC=arm-linux-gnu-gcc AR=arm-linux-gnu-ar RANLIB=arm-linux-gnu-ranlib

LD=arm-linux-gnu-ld ./configure --prefix=/opt/crosstool/4.1.1/arm-linux-gnu– make– make install

Page 33: 软件学院 刘豪

www.embedu.org33

Qt embedded linux 移植

移植 freetype 库(字体处理)• 下载地址: http://www.freetype.org/ • 步骤:

– tar jxvf XXX/freetype-2.4.0.tar.bz2 – cd freetype-2.4.0/– ./configure --host=arm-linux-gnu --prefix=/opt/crosstool/4.1.1/arm-linux-gnu– make– make install

Page 34: 软件学院 刘豪

www.embedu.org34

Qt embedded linux 移植

移植 libjpeg 库( jpeg 图像处理)• 下载地址: http://sourceforge.net/projects/libjpeg/• 移植步骤:

– tar zxvf XXX/jpegsrc.v6b.tar.gz – cd jpeg-6b/– CC=arm-linux-gnu-gcc AR=arm-linux-gnu-ar RANLIB=arm-linux-gnu-ranlib

LD=arm-linux-gnu-ld ./configure --enable-shared --enable-static --host=arm-linux-gnu --prefix=/opt/crosstool/4.1.1/arm-linux-gnu

– make– make install

Page 35: 软件学院 刘豪

www.embedu.org35

Qt embedded linux 移植

移植 libpng ( png 图片处理)• 下载地址: http://libpng.sourceforge.net/• 编译步骤:

– tar jxvf XXX/libpng-1.2.16.tar.bz2 – cd libpng-1.2.16/– ./configure --host=arm-linux-gnu --prefix=/opt/crosstool/4.1.1/arm-linux-gnu– make– make install

Page 36: 软件学院 刘豪

www.embedu.org36

Qt embedded linux 移植

交叉编译 Qt embedded linux 库 Qt embedded linux 的安装也是分为配置、编译、安装步骤。其中最主要的步骤是配置。

在配置之前需要修改源码使之能够交叉编译。

Page 37: 软件学院 刘豪

www.embedu.org37

Qt embedded linux 移植

支持交叉编译• Qt 默认的 ARM 交叉编译器名称是以“ arm-linux-” 开头的,但

是系统安装的交叉编译器是以“ arm-linux-gnu-” 开头的,为了使 Qt 能够进行交叉编译,需要将 Qt 交叉编译器的名称进行修改:– 修改文件 qt-everywhere-opensource-src-4.6.3/mkspecs/qws/linux-arm-g++/

qmake.conf ,在 arm-linux- 之后添加 gnu ,如下面的红色部分QMAKE_CC = arm-linux-gnu-gcc

QMAKE_CXX = arm-linux-gnu-g++

QMAKE_LINK = arm-linux-gnu-g++

QMAKE_LINK_SHLIB = arm-linux-gnu-g++

# modifications to linux.conf

QMAKE_AR = arm-linux-gnu-ar cqs

QMAKE_OBJCOPY = arm-linux-gnu-objcopy

QMAKE_STRIP = arm-linux-gnu-strip

Page 38: 软件学院 刘豪

www.embedu.org38

Qt embedded linux 移植

Qt 配置• 配置 Qt 分为粗略配置和细微配置

– 粗略配置是指使用 ./configure 配置– 细微配置是指使用 Qt 提供的 qconfig 工具细微配置 Qt 库特性

Page 39: 软件学院 刘豪

www.embedu.org39

Qt embedded linux 移植

细微配置 Qt 库介绍• 细微配置需要工具 qconfig ,这个工具需要手动编译才

能获得;• 解压 Qt 源码后, qconfig 在其源码目录的 tools 目录

下;• 编译该工具的方法如下:

– cd qt-everywhere-opensource-src-4.6.3/tools/qconfig/– qmake– make– sudo cp qconfig /usr/bin/

• 编译完之后 得到 qconfig 工具。

Page 40: 软件学院 刘豪

www.embedu.org40

Qt embedded linux 移植

使用 qconfig 工具配置 Qt 库 在命令行下启动 qconfig

• cd qt-everywhere-opensource-src-4.6.3/src/corelib/global/

• qconfig qfeatures.txt 其界面如 :

Page 41: 软件学院 刘豪

www.embedu.org41

Qt embedded linux 移植

在 qconfig界面中,可以定制Qt 库的特性,达到剪裁Qt 的效果; 如

将配置保存为 .h 文件,保存的目录放在• qt-everywhere-opensource-src-4.6.3/src/corelib/global/

目录下• 如保存为 qconfig-local.h 文件

Page 42: 软件学院 刘豪

www.embedu.org42

Qt embedded linux 移植

手动编辑 qconfig work/qt-everywhere-opensource-src-4.6.3/src/corelib/global/qconfig-local.h 文件,添加触摸屏支持,如下

注意,使用 qconfig 配置 Qt 库需要用户对 Qt非常了解,如果配置得不合理,很可能在编译 Qt 的过程中会发生错误。

建议初学者直接跳过这一步,使用粗略方式配置 Qt 库

Page 43: 软件学院 刘豪

www.embedu.org43

Qt embedded linux 移植

粗略配置 Qt 库• 查看配置选项

– ./configure --help– 列出的配置选项主要分以下 5 类

» Installation options (安装选项) » Configure options: (配置选项)» Third Party Libraries: (第三方库配置)» Additional options: (额外选项)» Qt for Embedded Linux only: ( Qt embedded linux 独

有选项)

Page 44: 软件学院 刘豪

www.embedu.org44

Qt embedded linux 移植

这里我们只配置以下选项• -prefix 指定安装路径是 /usr/qt-arm

• -debug 表示调试版本;• -opensource 表示开源版本;• -embedded arm 指定平台是 arm ;• -qconfig local 使用细微配置文件 qconfig-local.h

• -depths 8,16 指定 bpp

• -qt-mouse-linuxtp 指定使用 Qt 内置的触摸屏• -nomake examples -nomake demos -nomake tools 指

定不编译例子和工具• -D_ _ARM_ARCH_4T_ _ // 通过添加预处理项指定 ARM 体系结

构 配置完之后使用 make&&sudo make install 编译安装

Page 45: 软件学院 刘豪

www.embedu.org45

部署 Qt embedded linux

部署 Qt 主要步骤有以下三步:• 拷贝库到根文件系统

– Qt embedded运行时库安装在安装目录的 lib 目录下;– 根据前面的安装步骤,库安装在 /usr/qt-arm/lib 下

• 拷贝字体库到根文件系统– /usr/qt-arm/lib/fonts就是字体库目录,需要拷贝到目标系统中

• 配置目标系统的环境变量– 在运行 Qt 应用程序时,需要指定如下环境变量:

» QTDIR 指定 QT 所在目录» LD_LIBRARY_PATH 指定 QT 库路径» QWS_MOUSE_PROTO 指定使用的触摸屏驱动的设备文

件» LANG 指定字符编码» HOME 指定家目录

Page 46: 软件学院 刘豪

www.farsight.com.cn46

Q&A

Page 47: 软件学院 刘豪