1 / 47

软件学院 刘豪

软件学院 刘豪. 单元 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. 解压源码并改名

Télécharger la présentation

软件学院 刘豪

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软件学院 刘豪 单元2-1-2:安装与配置QTE

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

  3. 安装与配置QT/E,建立嵌入式Linux图形开发环境 实验目的

  4. ubuntu 10.10发行版 FS_S5PC100平台 交叉编译器 arm-none-linux-gnueabi-gcc 实验环境

  5. 1.源码下载 下载地址 http://get.qt.nokia.com/qt/source/ 我们选择的版本是qt-everywhere-opensource-src-4.7.0-beta2.zip 实验步骤

  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 实验步骤

  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 实验步骤

  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架构 实验步骤

  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 实验步骤

  10. 4. 编译 $ make 5. 安装 $ sudo make install 实验步骤

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

  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 实验步骤

  13. 9. 修改/ qt-everywhere/bin/qmake $ cd /qt-everywhere/bin $ mv qmake qmke-target 实验步骤

  14. 知识点睛 Qt 简介 搭建Qt 开发环境 14 14 www.embedu.org www.embedu.org 14

  15. Qt 简介 Qt介绍 Qt 是跨平台的应用程序和 UI 框架; 它包括跨平台类库、集成开发工具和跨平台 IDE; 开发应用程序: ”一次编写、到处编译”; 官方网站 http://qt.nokia.com Qt 支持以下平台 15 www.embedu.org

  16. 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) 16 www.embedu.org

  17. Qt 简介 Qt 应用范围 KDE Maya Google earth Opera浏览器 Skype网络电话 QCad Adobe Photoshop Album CGAL计算几何库 …… 17 www.embedu.org

  18. Qt 简介 Qt 4.6 新特性 Qt 的最新版本 4.6。Qt 4.6 最令人兴奋的新功能是支持 Multi-touch(多点触摸)和手势输入。同时,该版本具有强大的全新图形处理能力,并对 Symbian、Maemo、Windows 7、Mac OS 10.6 等平台提供了支持。 18 www.embedu.org

  19. Qt 简介 Qt Embedded linux和Qt X11框架 19 www.embedu.org

  20. Qt 简介 Qt X11所依赖的库 20 www.embedu.org

  21. Qt 简介 21 www.embedu.org

  22. 搭建Qt 开发环境 搭建 Qt X11开发环境 Qt embedded linux移植 部署Qt embedded linux 22 www.embedu.org

  23. 搭建Qt X11开发环境 搭建Qt开发环境,主要要建立的环境包括: Qt X11动态库 Qt 基本开发工具 如qmake、moc、uic等 qtcreator IDE Qtcreator是nokia在qt 4.5版本之后推出的集成开发环境,集编辑、编译、调试于一体。 23 www.embedu.org

  24. 搭建Qt X11开发环境 Qt X11 安装 在PC上安装Qt X11开发环境大概有以下三种: 如果是ubuntu系统,可以使用”apt-get install”下载安装; 第二种方法是从源码安装; 另一种方法是直接安装SDK; 24 www.embedu.org

  25. 搭建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 25 www.embedu.org

  26. 搭建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源码,编译安装。 26 www.embedu.org

  27. 搭建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 27 www.embedu.org

  28. 搭建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开发环境 28 www.embedu.org

  29. 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等工具。 29 www.embedu.org

  30. Qt embedded linux移植 交叉工具链的结构 程序开发环境主要包括:编译工具、库和头文件。 -- 4.1.1 |-- bin |-- arm-linux-gnu | |-- include | |-- lib 4.1.1版本的工具链的编译器安装在bin目录下: 交叉编译程序时,链接的库安装在arm-linux-gnu/lib下: 头文件在arm-linux-gnu/include下: 30 www.embedu.org

  31. Qt embedded linux移植 交叉编译基本库 交叉编译Qt embedded linux 源码之前,先检测交叉工具链有没有安装一些必要的基本库,主要查看zlib、libjpeg、libpng 、freetype库有没有安装上; 如: ls 4.1.1/arm-linux-gnu/lib 如果这些库没有安装的话,需要下载源码交叉编译安装。 31 www.embedu.org

  32. 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 32 www.embedu.org

  33. 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 33 www.embedu.org

  34. 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 34 www.embedu.org

  35. 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 35 www.embedu.org

  36. Qt embedded linux移植 交叉编译Qt embedded linux 库 Qt embedded linux的安装也是分为配置、编译、安装步骤。其中最主要的步骤是配置。 在配置之前需要修改源码使之能够交叉编译。 36 www.embedu.org

  37. 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,如下面的红色部分 37 www.embedu.org

  38. Qt embedded linux移植 Qt配置 配置Qt分为粗略配置和细微配置 粗略配置是指使用./configure 配置 细微配置是指使用Qt提供的qconfig工具细微配置Qt库特性 38 www.embedu.org

  39. 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工具。 39 www.embedu.org

  40. Qt embedded linux移植 使用qconfig工具配置Qt库 在命令行下启动qconfig cd qt-everywhere-opensource-src-4.6.3/src/corelib/global/ qconfig qfeatures.txt 其界面如: 40 www.embedu.org

  41. Qt embedded linux移植 在qconfig界面中,可以定制Qt库的特性,达到剪裁Qt的效果; 如 将配置保存为.h文件,保存的目录放在 qt-everywhere-opensource-src-4.6.3/src/corelib/global/目录下 如保存为qconfig-local.h文件 41 www.embedu.org

  42. Qt embedded linux移植 手动编辑qconfig work/qt-everywhere-opensource-src-4.6.3/src/corelib/global/qconfig-local.h文件,添加触摸屏支持,如下 注意,使用qconfig配置Qt库需要用户对Qt非常了解,如果配置得不合理,很可能在编译Qt的过程中会发生错误。 建议初学者直接跳过这一步,使用粗略方式配置Qt库 42 www.embedu.org

  43. Qt embedded linux移植 粗略配置Qt库 查看配置选项 ./configure --help 列出的配置选项主要分以下5类 Installation options (安装选项) Configure options: (配置选项) Third Party Libraries: (第三方库配置) Additional options: (额外选项) Qt for Embedded Linux only: (Qt embedded linux 独有选项) 43 www.embedu.org

  44. 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编译安装 44 www.embedu.org

  45. 部署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 指定家目录 45 www.embedu.org

  46. Q&A 46 www.farsight.com.cn

  47. 谢谢!

More Related