在Linux下安装QT交叉编译,安装QT交叉编译 成功 + 测试
我的环境:
主机: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交叉编译 成功 + 测试相关推荐
- linux下qt的文件打包,【最详细最完整】在Linux 下如何打包免安装的QT程序?
版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! https://blog.csdn.net ...
- Linux下Memcache服务器端的安装
Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memca ...
- 第十章 Linux下RPM软件的安装与卸载
第十章 Linux下RPM软件的安装与卸载 第一节 RPM软件包安装 rpm命名原则 如: vsftpd-3.0.2-9.el7.x86_64.rpm vsftpd 3.0.2 9 e17 x86_6 ...
- Linux下oracle 9i图文安装二
接上期的Linux下oracle 9i图文安装一([url]http://waringid.blog.51cto.com/65148/47655[/url]),下面进行Oracle安装前期准备中的第一 ...
- Linux redis安装教程,Linux 下redis5.0.0安装教程详解
Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...
- Linux下的网络远程安装
Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 1 #mount 2 #umount /dev/cdrom 3 #mkdir ...
- Linux下的docker容器安装教程
Linux下的docker容器安装教程 一.初始环境配置 1.yum仓库配置 2.检查yum仓库 3.关闭防火墙和selinux 二.开启内核的流量转发 三.安装docker 1.配置docker相关 ...
- Linux 下 微擎 的安装使用
Linux 下 微擎 的安装使用 我的小站.Github 微擎 是一款基于WEB2.0(PHP+Mysql)技术架构,免费开源的公众平台管理系统,提供公众号.微信小程序.支付宝小程序.百度熊掌号.移动 ...
- mysql5.7.20linux安装,linux下 mysql5.7.20安装(精华)
在linux 系统中mysql配置文件的读取顺序为: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 第一步 创 ...
- Linux下查看MySQL的安装路径
Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root 17659 1 0 2011 ? 00:00 ...
最新文章
- 吉大20春学期C语言程序设计作业二,吉大18春学期《C语言程序设计》在线作业二【答案】...
- scrapy笔记——python的时间转换
- OpenGL Gouraud着色法的实例
- php如何和c进行数据交换,PHP与 后台c交换数据 | 学步园
- Hibernate学习笔记③
- php5.5升级到php5.6,从php5.5.9升级到php5.6之后,相当于php5enmod?
- IOS应用之一--异常处理(UncaughtExceptionHandler)
- php7与mysql相关配置_PHP7连接mysql,文件配置问题
- sublime text3之修改注释颜色
- 钉钉 e应用 mysql_钉钉E应用入门总结
- MCMC抽样与LDA参数求解
- 论文泛读: 基于改进退化隐马尔可夫模型的设备健康诊断与寿命预测研究
- 电脑计算机硬盘内存满了怎么清理,电脑磁盘空间怎么清理 电脑磁盘空间清理方法【详解】...
- ssh链接报错Server responded “Algorithm negotiation failed”
- 全拼到缩写月份单词python_月份的英文缩写及全名
- 软件开发质量管理和控制措施
- Qt::​Alignment 设置对齐方式
- linux编译OCC,Linux命令 od -t oCc 选项是什么意思?
- 慧荣SMI SM3255主控三星Flash芯片专用量产工具SM3255_J0324
- qt槽函数如何传递多个参数_Qt中connect函数不能传递参数的两种解决方法
热门文章
- 关于Javascript表单验证
- OpenCV Python 直方图
- April Fools Day Contest 2016 F. Ace It!
- java string与byte互转
- JSP-08-第三方控件的使用
- JAVA程序设计 实验一报告
- HTML5学习笔记简明版(1):HTML5介绍与语法
- 关于Entity Data model掌握灵活的数据模型 EntityFramework(1)(翻译)
- springboot 集成 jwt+oauth+springsecurity 实现单点登录,feign远程调用,eruka注册中心,seata分布式事务配置
- js 中二叉树的深度遍历与广度遍历(递归实现与非递归实现)