软件学院 刘豪

Post on 31-Dec-2015

111 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

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

单元 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. 解压源码并改名 $ 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

实验步骤

配置 $ 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

实验步骤

-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 架构

实验步骤

-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

实验步骤

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

实验步骤

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

实验步骤

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

实验步骤

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

www.embedu.org14 www.embedu.org14 14

知识点睛知识点睛

Qt 简介 搭建 Qt 开发环境

www.embedu.org15

Qt Qt 简介简介

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

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

Qt 支持以下平台

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 )

www.embedu.org17

Qt Qt 简介简介

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

www.embedu.org18

Qt Qt 简介简介

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

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

www.embedu.org19

Qt Qt 简介简介

Qt Embedded linux 和 Qt X11 框架

www.embedu.org20

Qt Qt 简介简介

Qt X11 所依赖的库

www.embedu.org21

Qt Qt 简介简介

www.embedu.org22

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

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

www.embedu.org23

搭建 Qt X11 开发环境

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

• 如 qmake 、 moc 、 uic 等 qtcreator IDE

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

www.embedu.org24

搭建 Qt X11 开发环境

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

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

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

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

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 源码,编译安装。

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

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 开发环境

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 等工具。

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 下:

www.embedu.org31

Qt embedded linux 移植

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

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

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

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

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

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

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

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

www.embedu.org36

Qt embedded linux 移植

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

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

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

www.embedu.org38

Qt embedded linux 移植

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

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

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 工具。

www.embedu.org40

Qt embedded linux 移植

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

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

• qconfig qfeatures.txt 其界面如 :

www.embedu.org41

Qt embedded linux 移植

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

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

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

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 库

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 独

有选项)

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 编译安装

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 指定家目录

www.farsight.com.cn46

Q&A

top related