1 Overview of Chinese Linguistic Characteristics Chinese Name Jack Jinghui Liu 敬辉刘 刘敬辉.
软件学院 刘豪
-
Upload
cecilia-tucker -
Category
Documents
-
view
111 -
download
9
description
Transcript of 软件学院 刘豪
单元 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