嵌入式Qt 4.7.1安装移植过程详解
环境:
Ubuntu 12.04
VMware 9.0

qt软件包:qt-everywhere-opensource-src-4.7.1.tar.gz (飞凌自带)

http://www.kuaipan.cn/file/id_111560663117095120.htm 访问密码:H17dXX

交叉工具链4.3.2(参照飞凌技术手册)
Tslib库的安装(参照飞凌技术手册)

说明:前面的准备工作和飞凌技术手册当中的一样,因为飞凌没有给Qt 4.7.1的嵌入式版本的移植教程,所以下面我将步骤附上:

一、Qt4.7.1安装

 

在Linux中分别安装应用于不同平台的Qt:PC;嵌入式X86;ARM。

这三者PC版、嵌入式X86版和ARM版的区别主要体现在:当configure时分别加了不同的参数,具体区别是:

 

PC平台(X11平台):在linux中全安装qt,用它编译好程序后,直接用“./”就可运行。
嵌入式X86平台:带有qvfb功能,在PC机上可以模拟应用程序在arm开发板上的运行情况。用此编译好的程序,只用“./”命令不可以运行,必须加上参数 [ -qvfb ]–qws
Ps:嵌入式X86平台,这个是PC下的一个qtopia,他自带有个模拟器,可以模拟出arm开发板的样子出来。方便调试;
ARM平台:编译好的程序,用于在arm平台上运行。
Ps:ARM平台,这个主要是用来编译,因为要下载到开发板上,需要arm版的qte的库文件,编译后直接下载到开发板运行;

Ps:编译x86是为了得到makeqpf,编译pc是为了得到qvfb

首先解压缩 tar –zxvf qt-everywhere-opensource-src-4.7.1.tar.gz

并拷贝出三份,分别命名成qt-4.7.1-arm、qt-4.7.1-x86、qt-4.7.1-pc具体步骤如下:


A. 安装PC平台的QT
1) 配置:进入cd qt-4.7.1-pc,运行./configure -prefix /opt/Qt-4.7.1-pc
2) 编译:make (时间比较长)

3) 安装:make install (由于在配置时指定了安装目录,这样将被安装到目录/opt/Qt-4.7.1-pc下)

B. 安装嵌入式X86平台的QT
1) 配置:进入cd qt-4.7.1-x86,运行的命令,./configure -prefix /usr/local/Trolltech/qt-4.7.1-x86-qvfb -opensource -confirm-license -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb -make tools -qt-mouse-qvfb
2) 编译:make (时间比较长)

3) 安装:make install (由于在配置时指定了安装目录,这样将被安装到目录/opt/Qt-4.7.1-x86-qvfb下)

C. 安装ARM平台的QT/E
方法I:用飞凌自己编写的脚本build-all,终端下面直接运行./build-all
方法II:
1)配置:进入cd qt-4.7.1-arm,然后运行./configure -prefix /usr/local/Trolltech/qt-4.7.1-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -no-qt3support -fast -no-largefile -qt-mouse-tslib -I /usr/local/tslib/include -L /uar/local/tslib/lib -make tools -make demos -make examples -make docs -qt-libjpeg -qt-libpng -qt-libtiff -qt-gif –multimedia
2) 编译:make (时间比较长)
3) 安装:make install (由于在配置时指定了安装目录,这样将被安装到目录/opt/Qt-4.7.1-arm下)

附录III将附上我的各个脚本文件:直接在终端运行./**build-all即可

二、Qvfb的安装:

 

如果要在PC机上使用qvfp,就要手动安装qvfb:
1)进入目录:cd qt-4.7.1-pc ,cd tools/qvfp
2)安装:Make

3)将生成的qvfb可执行文件拷贝到-x86-qvfb文件夹:cp qt-4.7.1-pc/bin/qvfp /opt/qt-4.7.1-x86-qvfb/bin

三、测试qvfb

 

1)启动qvfb:终端输入/opt/qt-4.7.1-x86/bin/qvfb -width 800 -height 480 & 这样就会弹出一个qvfb的窗口;
2)运行用x86版本的Qt 4.7.1编译的可执行程序test:./test –qws;(root权限)
3)切换我们的qvfb窗口中,就可以看到test的运行界面了

四、MakeQpf制作嵌入式字体

 

如果你想制作适合嵌入式系统的字库文件,那么就需要x86版本中的makeqpf程序了,当然这个makeqpf只能在qvfb窗口当中才能运行,所以还是需要上面的步骤的;
1)进入x86-qvfb目录:cd /opt/qt-4.7.1-x86-qvfb/bin/
2)启动qvfb: ./qvfb -width 800 -height 480 &
3)运行makeqpf:./makeqpf -qws

 

 

五,嵌入式Qt 4.7.1程序的移植

 

先设置环境变量:export PATH=/usr/local/arm/4.4.1/bin/:$PATH
1、用/opt/Qt-4.7.1-arm/bin/qmake工具编译编写的程序,生成Makefile文件
2、修改Makefile文件,
CFLASS = -fno-rtti 
CXXFLAGS = -fno-rtti
3、make生成可执行文件
4、建立开发板环境变量文件env.sh,内容如下:
由于我之前用的是Qtopia4.4.3版本,所以里面会出现这个版本的信息;
#export PATH='/opt/Qtopia4.4.3/bin:/sbin:/usr/sbin:/bin:/usr/bin' 程序开机启动可以不要
#export QPEDIR='/opt/Qtopia4.4.3'程序开机启动可以不要
#export QTDIR='/opt/Qtopia4.4.3'程序开机启动可以不要
export QT_QWS_FONTDIR='/opt/Qtopia4.4.3/lib/fonts/'字体目录
export QWS_DISPLAY='LinuxFb:mmWidth76:mmHeight44:1'
export QWS_MOUSE_PROTO='Tslib:/dev/input/event1'
export TSLIB_CALIBFILE='/etc/pointercal' //校准的数据文件,由ts_calibrate校准程序生成
export TSLIB_CONFFILE='/usr/local/tslib/etc/ts.conf' //配置文件名
export TSLIB_CONSOLEDEVICE='none' //控制台设备文件名
export TSLIB_FBDEVICE='/dev/fb0' //设备名
export TSLIB_PLUGINDIR='/usr/local/tslib/lib/ts' //插件目录
export TSLIB_ROOT='/usr/local/tslib'
export TSLIB_TSDEVICE='/dev/input/event1' //触摸屏设备文件名
export TSLIB_TSEVENTTYPE='H3600'
export QT_PLUGIN_PATH='/opt/qt-4.7.1/plugins:/opt/qt-4.7.1/qt_plugins/' //插件目录
export LD_LIBRARY_PATH='/opt/qt-4.7.1/lib' //qt库文件,非常重要

5、将可执行文件和sh文件放入/目录下面
6、source /env.sh
7、./helloworld -qws &

注意:飞凌文件系统/etc/init.d/rcS中的最后一行的说明:1)/bin/qopia & 表示qtopia2.2.0
2)/bin/qtopia4 & 表示qtopia4.4.3
3)/bin/qt4 & 表示qt/e4.7
1、我们在实际调试的时候,都是通过nfs挂载的形式。当我们运行ts_calibrate的时候,会在/etc目录下生成一个pointercal文件。有时候会因为挂载目录的权限不够,导致无法生成Pointercal文件。这个时候我们可以用chmod 777 etc加个权限。
2、有时候由于交叉编译工具两没有指定正确,会出现非法指令或者是“ line 1: syntax error: unexpected "("”错误。可以用file ts_calibrate是否是在当前平台上运行的程序,用readelf -a ts_calibrate查看当前的指令集.
3. export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0",这句话我们在后面的Qt程序国际化的得到,在移植的所有工作都完成以后,我发现LCD屏山的字体非常小。后来经过多发打听,才知道需要修改这句话。我们把其中的数字值都改为其一半的时候,屏山的字体就比较大了。具体原因有待研究。

附录I 编译过程中的错误总结:

1.在Ubuntu下面安装插件工具:
sudo apt-get install g++
2.出错信息是在./configure阶段
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/zhu/Qt/qt-x11-opensource-src-4.5.2/mkspecs/linux-g++
其原因就在于需要安装libX11的开发包,在ubuntu/debian里包名都是libX11-dev
根据以往的经验,在./configure前主动装好下面3个包,基本上就万事大吉了
sudo apt-get install libX11-dev libXext-dev libXtst-dev
3.如果出现basic xlib functionality test failed错误,需要安装libX11的安装包,在终端输入sudo apt-get install libX11-dev libXext-dev libXtst-dev
4.在终端输入make,如果出现cannot find lXrender错误,需要安装libxrender-dev,在终端输入sudo apt-get install libxrender-dev

附录II 安装tslib的脚本:

export PATH=/usr/local/arm/4.4.1/bin/:$PATH
export TOOLCHAIN=/usr/local/arm/4.4.1/
export TB_CC_PREFIX=arm-linux-
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
./autogen.sh
./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib/build -host=arm-linux --cache-file=arm-linux.cache 2>&1 | tee conf_log
make 2>&1 |tee make_log
make install

附录III 安装三个版本Qt4.7.1的脚本文件

http://www.kuaipan.cn/file/id_111560663117095115.htm 访问密码:lM3Sl1
http://www.kuaipan.cn/file/id_111560663117095117.htm 访问密码:5oXIFi
http://www.kuaipan.cn/file/id_111560663117095116.htm 访问密码:MPC9nK
Pc-build-all:
#/bin/bash
rm -fr qt-everywhere-opensource-src-4.7.1
rm -fr /opt/qt-4.7.1
tar xfvz qt-everywhere-opensource-src-4.7.1.tar.gz
cd qt-everywhere-opensource-src-4.7.1
echo yes | ./configure -opensource -confirm-license -prefix /opt/Qt-4.7.1-pc
make 2>&1 | tee ../qte4.7.1Makelog && make install
x86-build-all:
#/bin/bash
export PATH=/usr/local/arm/4.3.2/bin:$PATH
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi
export TB_CC_PREFIX=arm-linux-
export TOOLCHAIN=/usr/local/arm/4.3.2
rm -fr qt-everywhere-opensource-src-4.7.1
rm -fr /opt/qt-4.7.1
tar xfvz qt-everywhere-opensource-src-4.7.1.tar.gz
cd qt-everywhere-opensource-src-4.7.1
mkdir /opt/Qt-4.7.1-x86-qvfb
echo yes | ./configure -prefix /opt/Qt-4.7.1-x86-qvfb -opensource -confirm-license -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb -make tools -qt-mouse-qvfb
make 2>&1 | tee ../qte4.7.1Makelog && make install
arm-build-all:
#/bin/bash
export PATH=/usr/local/arm/4.3.2/bin:$PATH
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi
export TB_CC_PREFIX=arm-linux-
export TOOLCHAIN=/usr/local/arm/4.3.2
rm -fr qt-everywhere-opensource-src-4.7.1
rm -fr /opt/qt-4.7.1
tar xfvz qt-everywhere-opensource-src-4.7.1.tar.gz
cd qt-everywhere-opensource-src-4.7.1
mkdir /opt/Qt-4.7.1-arm
echo yes | ./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -prefix /opt/Qt-4.7.1-arm -I /usr/local/tslib/include -L /usr/local/tslib/lib

make 2>&1 | tee ../qte4.7.1Makelog && make install

完结。

原文出自:http://blog.csdn.net/csf111/article/details/9324277

嵌入式Qt4.7.1安装详解的更多相关文章

  1. 嵌入式Linux应用程序开发详解------(创建守护进程)

    嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...

  2. Linux ssh登录和软件安装详解

    阿哲Style   Linux第一天 ssh登录和软件安装详解 Linux学习第一天 操作环境: Ubuntu 16.04 Win10系统,使用putty_V0.63 本身学习Linux就是想在服务器 ...

  3. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  4. scribefire 多博客管理利器 安装详解

    scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...

  5. CentOS 6.5的安装详解

    CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...

  6. Linux下tomcat的安装详解

    Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...

  7. Phoenix和SQuirrel安装详解

    Phoenix安装详解 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等.今天的主角是Phoenix. phoenix,中文译为“凤凰” ...

  8. zabbix agent安装详解

    安装 Installing repository configuration package Zabbix 2.2 for RHEL5, Oracle Linux 5, CentOS 5: rpm - ...

  9. zabbix server安装详解

    简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以 ...

随机推荐

  1. 关于方程x^2+y^2=p (p为素数)的解问题

    问题描述:对于方程,其中为素数,x,y为整数,且,输出符合条件的x,y. 分析:对于本方程,我们通过费马平方和定理知道,只有奇素数p满足这个条件时才有解. 那么当此方程有解时,解有几个呢?很明显不可能 ...

  2. Linux内存初始化

    start_kernel -> setup_arch 在这个函数中我们主要看这几个函数. machine_specific_memory_setup max_low_pfn = setup_me ...

  3. 近期会放出tlplayer for android的更新版本

    tlplayer for android的一次重大更新在近期将会放出,自从去年初的时候放出tlplayer android版本后,一直都没有更新tlplayer,而tlplayer for windo ...

  4. Eclipse开发Java EE应用

    设置Web服务器 添加Web服务器 以上两步可以直接由下面这步完成: or 创建Web工程 建立JSP文件供测试 发布Java Web工程 方法1:在下方Server中添加 方法2:右击左边项目导航树 ...

  5. (Deep) Neural Networks (Deep Learning) , NLP and Text Mining

    (Deep) Neural Networks (Deep Learning) , NLP and Text Mining 最近翻了一下关于Deep Learning 或者 普通的Neural Netw ...

  6. 百万程序员的苦恼-选择VB.NET还是C#

    在过去的一年中,互联网上的各大讨论区或者电子邮件的讨论列表都对微软的VB.NET以及C#的各种优越性做了探讨.这些讨论围绕的主要问题就是,我应该先学哪一个,VB.NET还是C#?? 我写这篇文章的目的 ...

  7. BZOJ_2049_[Sdoi_2008]_Cave_洞穴勘测_(LCT/并查集)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=2049 给出一个森林,起始互不相连,现在有link和cut两种操作,问x,y是否在一棵树里. 分 ...

  8. Wordpress Jigoshop插件路径泄露漏洞

    漏洞名称: Wordpress Jigoshop插件路径泄露漏洞 CNNVD编号: CNNVD-201311-109 发布时间: 2013-11-12 更新时间: 2013-11-12 危害等级:   ...

  9. [FOJ 1752] A^B mod C

    Problem 1752 A^B mod C Accept: 750    Submit: 3205Time Limit: 1000 mSec    Memory Limit : 32768 KB   ...

  10. 步步为营 SharePoint 开发学习笔记系列总结

    转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...