当前位置: 首页 > news >正文

Qt/Embedded嵌入式开发环境的建立

一. 开发环境
(1) Red Hat Enterprise Linux 5
(2) Linux Kernel 2.6.18
(3) (Qt开发包) qt-x11-2.3.2.tar.gz
(4) (Qt/Embedded开发包) qt-embedded-2.3.10-free.tar.gz
(5) (自动创建Makefile文件的工具) tmake-1.13.tar.gz
(6) 编译器 gcc-2.95或者 更高版本
下载提示:在 http://qt.nokia.com/downloads 进入 ftp://ftp.qt.nokia.com/qt/source/
二. 解压安装包并设置环境变量
(如下均假设在/root/qte目录下进行)
(1) 安装tmake:
#cd ~/qte
#tar zxvf tmake-1.13.tar.gz
#export TMAKEDIR=$PWD/tmake-1.13
(2) 安装qt:
#cd ~/qte
#tar zxvf qt-x11-2.3.2.tar.gz
#export QT2DIR=$PWD/qt-2.3.2
(3) 安装qte:
#cd ~/qte
#tar zxvf qt-embedded-2.3.10-free.tar.gz
#export QTEDIR=$PWD/qt-2.3.10
三. 编译Qt 和Qt/Embedded
(1) 编译Qt:
#cd $QT2DIR
//设置环境变量
#export TMAKEPATH=$TMAKEDIR/lib/linux-g++
#export QTDIR=$QT2DIR
#export PATH=$QTDIR/bin:$PATH
//将Qt库加入到系统共享库中
#ldconfig $QTDIR/lib
//开始编译
#make clean
//configure命令对Qt进行编译设置,其包含很多选项,可通过./configure –help
//来获取详细的帮助信息。
#./configure -no-xft –system-jpeg
#make
//将uic工具复制到Qt/Embedded目录中,可覆盖原文件
#cp bin/uic $QTEDIR/bin/
(2) 编译qvfb:
//qvfb工具用来生成Virtual Frame Buffer,它可以模拟在嵌入式开发板上的显示
//状况,如果在qvfb中模拟运行没有问题的话,就可以直接通过交叉编译在
//开发板上运行了。
#cd $QTEDIR/tools/qvfb
//设置环境变量
#export PATH=$TMAKEPATH/bin:$PATH
#make clean
//用tmake自动创建Makefile文件
#tmake -o Makefile qvfb.pro
//开始编译
#make
//将qvfb工具复制到Qt/Embedded目录中,可覆盖原文件
#cp qvfb $QTEDIR/bin
(3) 编译Qt/Embedded:
#cd $QTEDIR
//设置环境变量
#export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
#export QTDIR=$QTEDIR
#export PATH=$QTDIR/bin:$PATH
//将Qt/Embedded库加入到系统共享库中
#ldconfig $QTDIR/lib
#make clean
//开始编译
//configure中的选项-qvfb用来对Virtual Frame Buffer进行支持,-depths用来
//支持4位、8位、16位、32位的显示深度
#./configure -no-xft –system-jpeg -qvfb -depths 4,8,16,32
#make
四. 建立开发环境的初始变量
#vi ~/.bashrc
export TMAKEDIR=~/qte/tmake-1.13
export QT2DIR=~/qte/qt-2.3.2
export QTEDIR=~/qte/qt-2.3.10
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$TMAKEPATH/bin:$PATH
五. 设置Qt/Embedded 开发的共享库
//通过在ld.so.conf文件中加入开发库的绝对路径,将开发库设置成Linux
//共享库,以后就可以直接在项目源代码中使用include预编译指令加载
//Qt和Qt/Embedded开发库中的类了。
#vi /etc/ld.so.conf
/root/qte/qt-2.3.2/lib
/root/qte/qt-2.3.10/lib
六. 测试Virtual Frame Buffer
#cd $QTEDIR/examples/launcher
#qvfb -width 640 -height 480 &
#sleep 10
#./launcher –qws
七. 说明
以上对于源码包的编译均使用了gcc-2.95(其中包含 g++-2.95)编译器,其由RH9系统自带。若使用其它Linux发行版,则需要保证其安装了gcc-2.95编译器,其它版本的编译器如在最新发行 版中常见的gcc-3.4.6,gcc-4.1等均无法保证正常编译。
当手动安装了gcc-2.95编译器后,需要修改所有源码包中的编译器选项:
tmake:直接修改Makefile文件,指定编译器为gcc-2.95
qt-x11:修改$QT2DIR/configs/linux-g++-shared文件,将编译器指定为g++-2.95
qt-embedded:修改$QTEDIR/configs/linux-x86-g++-shared文件,修改为g++-2.95
在对qt-embedded进行交叉编译时,也要修改对应的config文件(arm-linux-g++)。

相关文章:

  • 在嵌入式Linux情形下制造QPF字库的举措
  • Xvidcap:屏幕录像机
  • GrubED-Grub 编辑脚本
  • Google Earth 4.3 beta 界面字体增年夜术
  • Oracle根蒂根基知识
  • 使用SQL语句中between and查询数据出错
  • 网络编程[31]
  • 设置数据库兼容级别的两种方法
  • wordpress之模板汉化
  • 虚拟主机运行Asp.net MVC2程序体验(在不同版本的 IIS 上使用 ASP.NET MVC(转),付程序示例 )...
  • SQL Server 的最大容量规范
  • VC命名规范
  • 一步一步学习C#中的多线程 --- 1、初识线程(2)--给线程传递参数
  • PL/SQL是什么
  • DDL触发器学习整理
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2018一半小结一波
  • CSS 专业技巧
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • js写一个简单的选项卡
  • Python连接Oracle
  • session共享问题解决方案
  • 基于Android乐音识别(2)
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 网页视频流m3u8/ts视频下载
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​HTTP与HTTPS:网络通信的安全卫士
  • $().each和$.each的区别
  • (poj1.3.2)1791(构造法模拟)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (全注解开发)学习Spring-MVC的第三天
  • (五)关系数据库标准语言SQL
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)jQuery 基础
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 按比例显示图片的缩略图
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET下ASPX编程的几个小问题
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • ??eclipse的安装配置问题!??
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ linux ] linux 命令英文全称及解释
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [android] 天气app布局练习
  • [Angular 基础] - 指令(directives)
  • [BUG]vscode插件live server无法自动打开浏览器
  • [ffmpeg] x264 配置参数解析
  • [IE编程] 如何编程清除IE缓存
  • [Java性能剖析]Sun JDK基本性能剖析工具介绍
  • [LeetCode][LCR190]加密运算——全加器的实现
  • [Notes]python argparse模块