我的环境:

主机:redhat 5

主机编译器:gcc 4.1.1

交叉编译器:arm-linu-gcc 4.1.1

工具软件:

qt-embedded-linux-opensource-src-4.5.0.tar.bz2

qt-x11-opensource-src-4.5.0.tar.bz2

平时程序都是在PC上完成的,所以我们需要先安装X11版的QT来获得qvfb这工具,嵌入式的开发有了qvfb,就中以不需要实际的开发板,可以开发QT应用程序,至于开发驱动.那有开发板.

/usr/local/Trolltech/Qt-4.5.0/demos/ //是pc的qt程序,不是在qvfb里显示.

/usr/local/Trolltech/QtEmbedded-4.5.2-x86//demos/ //是x86版的qt程序,是在qvfb里显示.

/usr/local/Trolltech/QtEmbedded-4.5.2-arm//demos/ //是arm版的qt程序,是在板子里显示.

第一步:解压文件并命名

# tar -jxvf qt-x11-opensource-src-4.5.0.tar.bz2

# tar -jxvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2

# mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86 //构建用于pc上模拟开发的库,编译x86版QT应用程序.

# tar -jxvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2

# mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-arm 构建QT交叉编译库,编译arm版QT应用程序.然后移到开发板上直接运行.

第二步:配置及编译安装

安装qt-x11-opensource-src-4.5.0

进入 qt-x11-opensource-src-4.5.0目录分别执行:

# ./configure -qvfb //这记得把qvfb 配置好,即可直接安装qvfb工具.

# make

# make install

三四个小时安装完后,这地自动生成 /usr/local/Trolltech目录,这是qt-x11-opensource-src-4.5.1安装后所在的目录.qt-x11-opensource-src-4.5.0原目录已编译,放着以后中备用.

下面接着安装qvfb工具:

进入qt-x11-opensource-src-4.5.0/toolS/qvfb 目录进行编订安装.

# make

# make install //这样qvfb就被安装到/usr/local/Trolltech/qt-4.5.0/bin目录下了。

make install完成后 //如能运行qvfb,就不用CP

#cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.1/bin

或者:也同样得到上面效果.

#cd /tools/qvfb

#make –会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下

#cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin

等于(或者)

将/usr/local/qt/qt-x11-opensource-src-4.5.0/tools/qvfb目录下的qvfb相关文件拷贝到/usr/local/Trolltech/Qt-4.5.0/bin目录下,

#cp /usr/local/qt/qt-x11-opensource-src-4.5.0/tools/qvfb/ /usr/local/Trolltech/Qt-4.5.1/bin3

在运行qvfb时,记到/usr/local/Trolltech/Qt-4.5.0/bin/qvfb 目录 (是我另一台虚拟机的系统。可能之前没编译qvfb,先做个笔记。必须到这目录才能运行,郁闷)

运行:

#./qvfb

解决上面方法:

在/root/local/ qt-x11-opensource-src-4.5.3/tools/qvfb/目录中执行

#make 编译好qvfb可执行文件会在/root/local/qt-x11-opensource-src-4.5.3/bin目录下。

然后把/root/local/qt-x11-opensource-src-4.5.3/bin目录下这个qvfb可执行文件复制到qt-x11安装目录下,即/root/local/Trolltech /qt–4.5.3/bin中 .

安装qt-embedded-linux-opensource-src-4.5.0-x86

进入qt-embedded-linux-opensource-src-4.5.0-x86目录

# ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb -graphicssystem raster //这记得把qvfb 配置好,即可直接安装qvfb工具.

# make

# make install

//qt-x11-opensource-src-4.5.1-x86就编译好了。

运行前必须运行脚本,脚本是在你要编译x86版QT应用程序前要先执行的。它指定了一些引用。(脚本环境变量在后面有说明)

下面测试qvfb (先启动脚本)

输入:#qvfb & //启动qvfb

#/usr/local/Trolltech/Qt-x86/demos/chip/

#./chip -qws //启动

成功启动显示.

安装tslib

安装qt-embedded-linux-opensource-src-4.5.0-arm

//安装这个是最为关键的,因为编译好后要把lib拷贝到板子上

对于触摸屏幕,我使用的是tslib1.4.tar.gz

交叉编译tslib过程如下:

arm-9tdmi-linux-gnu交叉编译变量已在 /etc/bashc 里添加.

#tar -zxvf tslib1.4.tar.gz

#./autogen.sh //生成configure

#./configure –prefix=/usr/local/tslib/ –host=arm-9tdmi-linux-gnu ac_cv_func_malloc_0_nonnull=yes (可以先生成个cache文件)

#make

#make install

接着安装qt-arm

进入qt-embedded-linux-opensource-src-4.5.0-arm目录

#./configure –prefix=/usr/local/Trolltech/QtEmbedded-4.5.0-arm -arch arm -embedded arm -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib //因为开发版空间有限,只要完成需要的功能就可以了,可以直接裁剪. configure -help 查看.

(./configure -prefix /home/jimmy/opt/run/qt-arm -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license )

//后面一大堆参数,其实就是为了尽量减少库的大小,而剪裁一些不需要的功能

今天出现:

The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR in

/user/qt-embedded-linux-opensource-src-4.5.0-arm/mkspecs/qws/linux-arm-g++.

然后把arm/mkspecs/qws/linux-arm-g++/qmake.conf 里的linux-arm-g++ 改成交叉编译器 arm-9tdmi-linux-gnu 问题解决。

#make

#make install

//qt-x11-opensource-src-4.5.1-arm就编译好了。

运行前必须运行脚本,脚本是在你要编译arm版QT应用程序前要先执行的。它指定了一些引用。(脚本环境变量在后面有说明)

以上都安装完后.接下来设置环境变量:

分别三个环境变量脚本文件:(我把它们放到一个目录管理)

setenvQtpc.sh (PC X11 版QT); setenvQtx86.sh (X86 版QT); setenvQtarm.sh (arm 版QT)

(1)qt-x11:

vi setenvQtpc.sh

添加如下内容:

PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH

QTDIR=/usr/local/Trolltech/Qt-4.5.0

QTDEDIR=$QTDIR

MANPATH=$QTDIR/man:$MANPATH

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export PATH QTDIR MANPATH LD_LIBRARY_PATH

(2)qt-embedded-x86:

vi setenvQtx86.sh

添加如下内容:

PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH

QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86

QTDEDIR=$QTDIR

MANPATH=$QTDIR/man:$MANPATH

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export PATH QTDIR MANPATH LD_LIBRARY_PATH

(3)qt-embedded-arm:

vi setenvQtarm.sh

添加如下内容:

PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH

QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm

QTDEDIR=$QTDIR

MANPATH=$QTDIR/man:$MANPATH

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export PATH QTDIR MANPATH LD_LIBRARY_PATH

我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-arm:

#cd /user/shdir

#source setenvQtarm.sh

然后就可以用qmake designer等工具了.

注:在端口执行有效,如果运行source setenv 再打开另端口.那样就会出错.

在qt-x86端口运行setenv脚本,在本端口再进行编译QT程序.

运行x86程序必须先运行qt-x11/qt-x86 的setenv脚本,然后就可运行qvfb工具.再另一个端口打应用程序. ./qthello -qws 就样就可以在qvfb中显示.(运行qvfb,必须运行脚本)

接下来测试(现在例子)–也可以自己用QT写自己程序:): //以下步骤是同一个端口

#cd /user/shdir

#source setenvQtx86.sh

#qvfb //启动qvfb

#cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books

#./books -qws //这样可以在QVFB里显示 //可另一个端口

注:

如果编译QT程序,记得先运行相应脚本,即可用相应的QT平台编译QT程序。

如:编译PC QT4程序,因为本子是qt3,所以必须先运行脚本。

#source setenvQtpc.sh

#desiger/qmake //同一个端口,这样,它们是用QT4编译程序。

如:编译x86 QT4程序,必须先运行脚本。

#source setenvQtx86.sh

#qmake //同一个端口,这样,它们是用X86版QT4编译程序,可以QVFB里显示.

如:编译arm QT4程序,必须先运行脚本。

#source setenvQtarm.sh

#qmake //同一个端口,这样,它们是用arm版QT4编译程序,可以在板子里显示。

以上是本人实践通过笔记。呵呵。从不了解到了解,让自己更理解,同时谢谢网上的高手献的文章。

在Linux下安装QT交叉编译,安装QT交叉编译 成功 + 测试相关推荐

  1. linux下qt的文件打包,【最详细最完整】在Linux 下如何打包免安装的QT程序?

    版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! https://blog.csdn.net ...

  2. Linux下Memcache服务器端的安装

    Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...

  3. 第十章 Linux下RPM软件的安装与卸载

    第十章 Linux下RPM软件的安装与卸载 第一节 RPM软件包安装 rpm命名原则 如: vsftpd-3.0.2-9.el7.x86_64.rpm vsftpd 3.0.2 9 e17 x86_6 ...

  4. Linux下oracle 9i图文安装二

    接上期的Linux下oracle 9i图文安装一([url]http://waringid.blog.51cto.com/65148/47655[/url]),下面进行Oracle安装前期准备中的第一 ...

  5. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  6. Linux下的网络远程安装

    Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 1 #mount 2 #umount /dev/cdrom 3 #mkdir ...

  7. Linux下的docker容器安装教程

    Linux下的docker容器安装教程 一.初始环境配置 1.yum仓库配置 2.检查yum仓库 3.关闭防火墙和selinux 二.开启内核的流量转发 三.安装docker 1.配置docker相关 ...

  8. Linux 下 微擎 的安装使用

    Linux 下 微擎 的安装使用 我的小站.Github 微擎 是一款基于WEB2.0(PHP+Mysql)技术架构,免费开源的公众平台管理系统,提供公众号.微信小程序.支付宝小程序.百度熊掌号.移动 ...

  9. mysql5.7.20linux安装,linux下 mysql5.7.20安装(精华)

    在linux 系统中mysql配置文件的读取顺序为: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 第一步 创 ...

  10. Linux下查看MySQL的安装路径

    Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root     17659     1  0  2011 ?        00:00 ...

最新文章

  1. 吉大20春学期C语言程序设计作业二,吉大18春学期《C语言程序设计》在线作业二【答案】...
  2. scrapy笔记——python的时间转换
  3. OpenGL Gouraud着色法的实例
  4. php如何和c进行数据交换,PHP与 后台c交换数据 | 学步园
  5. Hibernate学习笔记③
  6. php5.5升级到php5.6,从php5.5.9升级到php5.6之后,相当于php5enmod?
  7. IOS应用之一--异常处理(UncaughtExceptionHandler)
  8. php7与mysql相关配置_PHP7连接mysql,文件配置问题
  9. sublime text3之修改注释颜色
  10. 钉钉 e应用 mysql_钉钉E应用入门总结
  11. MCMC抽样与LDA参数求解
  12. 论文泛读: 基于改进退化隐马尔可夫模型的设备健康诊断与寿命预测研究
  13. 电脑计算机硬盘内存满了怎么清理,电脑磁盘空间怎么清理 电脑磁盘空间清理方法【详解】...
  14. ssh链接报错Server responded “Algorithm negotiation failed”
  15. 全拼到缩写月份单词python_月份的英文缩写及全名
  16. 软件开发质量管理和控制措施
  17. Qt::​Alignment 设置对齐方式
  18. linux编译OCC,Linux命令 od -t oCc 选项是什么意思?
  19. 慧荣SMI SM3255主控三星Flash芯片专用量产工具SM3255_J0324
  20. qt槽函数如何传递多个参数_Qt中connect函数不能传递参数的两种解决方法

热门文章

  1. 关于Javascript表单验证
  2. OpenCV Python 直方图
  3. April Fools Day Contest 2016 F. Ace It!
  4. java string与byte互转
  5. JSP-08-第三方控件的使用
  6. JAVA程序设计 实验一报告
  7. HTML5学习笔记简明版(1):HTML5介绍与语法
  8. 关于Entity Data model掌握灵活的数据模型 EntityFramework(1)(翻译)
  9. springboot 集成 jwt+oauth+springsecurity 实现单点登录,feign远程调用,eruka注册中心,seata分布式事务配置
  10. js 中二叉树的深度遍历与广度遍历(递归实现与非递归实现)