Qt之qt4.7 和qt 4.8.4 交叉实践
开发机环境搭建:
测试环境:CentOs7.1 Ubuntu 12.0.4
操作流程:
一、编译Qt4.7.0
1)CentOS上实践
1.tar xzvf qt-everywhere-opensource-src-4.7.0.tar.gz
2.cd 解压目录下
3.yum install libX11-devel libXext-devel libXtst-devel
yum install libXrender*(我感觉可能上面库不够,出现报错)
4../configrue --prefix=/usr/local/Trolltech/Qt-x11-4.7.0
5.gmake
6.gmake install
测试安装qt-everywhere-opensource-src-4.8.4.tar.gz
已成功!
2)Ubuntu上实践
1.设置root密码
sudo passwd root
加入密码,两次输入
2.纯净版的Ubentu系统没有安装g++
apt-get install g++
3.源码包编译需要依赖libX11-dev libXext-dev libXtst-dev
apt-get install libX11-dev libXext-dev libXtst-dev
4.到qt官网下载qt-everywhere-opensource-src-4.8.4.tar.gz
5.tar zxvf 压缩文件.tar.gz
6.进入解压后文件目录,执行配置
cd qt-everywhere-opensource-src-4.8.4/
./configure -prefix /usr/local/Trolltech/Qt-x11-4.8.4
使用开源版本
紧接着选o ,然后再yes
6.编译
make
7.安装
make install
8.编译成功后
测试/usr/local/Trolltech/Qt-x11-4.8.4/bin/designer
9.设置环境变量:
运行命令vim ~/.profile编辑该文件,在文件中添加:
export QTDIR=/usr/local/Trolltech/Qt-x11-4.8.4 /*需要修改为你安装的目录*/
export LD_LIBRARY_PATH=$QTDIR/lib
export PATH=$PATH:$QTDIR/bin
保存并关闭文件
运行命令 source ~/.profile
这样,就可以在任何目录下使用qmake.
二、安装qtCreater
1.Ubentu安装
apt-get install qtcreator
终端中运行:qtcreator
配置编译器
工具-》选项-》构建和运行 Qt版本手动设置qmake编译器。
参考网址:
http://blog.csdn.net/lpp0900320123/article/details/24876159
2.CentOS安装
先查看版本号
我是32位,
http://qt.nokia.com/downloads下载 qtcreator2.6.2
chmod 777 qt-creator_*
./qt-creator*
安装/opt/qt-creator*路径
设置qmake路径
三、qt4.8.4交叉编译及开发机搭建
1.交叉编译tslib库(支持触摸屏的库函数)
1>交叉编译tslib:
tar xjvf tslib1.4.tar.bz2
cd tslib1.4
./autogen.sh
./configure --prefix=/home/wwb/tslib1.4_install/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
make
make install
本人使用的是博创科技生产的UP-CUP6410II
在其中有写的shell执行脚本,解压后直接执行./build.sh即可
2.交叉编译qt4.8.4
1)交叉编译
tar -xvzf qt-everywhere-opensource-src-4.8.4.tar.gz
cd qt-everywhere-opensource-src-4.8.4
./configure -prefix /home/wwb/qt-4.8.4-arm -release -opensource -shared -no-fast -largefile -stl -qt-sql-sqlite -qt3support -qt-zlib
-qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -qt-gfx-linuxfb -qt-gfx-qvfb -qt-kbd-tty -qt-kbd-linuxinput -qt-kbd-qvfb -qt-mouse-pc
-qt-mouse-linuxtp -qt-mouse-qvfb -embedded arm -host-little-endian -no-cups -no-3dnow -qt-freetype -depths all -xplatform /qws/linux-arm-g++ -qt-mouse-tslib -I /home/wwb/tslib1.4-install/include -L /home/wwb/tslib1.4-install/lib
修改qt-everywhere-opensource-src-4.8.4/mkspecs/qws/linux-arm=g++/qmake.conf文件(添加lts参数)
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK_DHLIB = arm-linux-g++ -lts
make
make install
测试过程中出现:
在编译完成x86使用的qt应用程序后,在编译arm使用的程序就会出现错误,需要重新解压一份,重新进行操作。(此问题,应该是由配置文件造成的,
能力有限)编译webkit时,出现Project MESSAGE: Disabling video due the lack of 需要一些库做支撑,但是没有也没事。QT中WebKit是一个
开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox)等使用和Trident(也可称MSHTML,IE使用)。同时WebKit是苹果公司浏览器引擎。
2)将编译好的qt-embeded放置到arm上测试
1.在挂载目录下创建一个目录,将编译好的代码拿过来。
cd /UP-CUP6410(挂在目录)
mkdir Trolltech
cd Trolltech
cp /home/wwb/qt-4.8.4-arm/ ./ -arf
cd qt-4.8.4-arm
cp /home/wwb/tslib1.4-install/lib/* /UP-CUP6410/Trolltech/qt-4.8.4-arm/lib/ -a
cp /home/wwb/tslib1.4-install/bin/* /UP-CUP6410/Trolltech/qt-4.8.4-arm/bin/ -a
cp /home/wwb/tslib1.4-install/etc/ /UP-CUP6410/Trolltech/qt-4.8.4-arm/ -a
2.修改当前目录中etc/ts.conf文件
vim etc/ts.conf
将第二行的#和空格去掉
:wq
3.arm端设置
mountnfs 58.154.51.187:/UP-CUP6410 /mnt/nfs
cd /mnt/nfs/Trolltech/qt-4.8.4/
export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib
export TSLIB_TSDEVICE=/dev/event1
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event1
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
export QT_QWS_FONTDIR=$PWD/lib/fonts
export QT_PLUGIN_PATH=$PWD/plugins
export LANG=zh_CN
说明:
TSLIB_TSDEVICE //触摸屏设备文件名。
TSLIB_CALIBFILE //校准的数据文件,由ts_calibrate校准程 序生成。
SLIB_CONFFILE //配置文件名。
TSLIB_PLUGINDIR //插件目录
TSLIB_CONSOLEDEVICE //控制台设备文件名
TSLIB_FBDEVICE //设备名
以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。
4.执行触摸屏校准
./bin/ts_calibrate
四、后期使用问题集锦
1.BUG :soft lockup detected on CPU#0
系统时间出现问题
date 一下发现板子的时间是1970年
1)在虚拟终端中使用date命令来查看和设置系统时间
#date
设置系统时钟的操作
#date 040310592016.30
通用的设置格式
2)使用hwclock命令查看和设置硬件时钟
查看硬件时钟的操作
hwclock -r
3)同步系统时钟和硬件时钟
硬件时钟与系统时钟同步
#hwclock --hctosys//测试无用
--hctosys表示Hardware Clock to SYStem clock。
系统时钟与系统时钟同步
hwclock --systohc
2.QT程序编译时的错误:QMAKESPEC has not been set, so configuration cannot be deduced.
添加系统变量:export QMAKESPEC=/home/wwb/qt-4.8.4-arm/mkspecs/qws/linux-arm-g++
五、知识补充:
cp 命令知识补充
参数:-a :相当于-pdr的意思(参数pdr分别为:保留权限,复制软链接本身,递归复制);
-p :连同档案的属性一起复制过来,而非使用预设属性。
-d :若来源文件为连接文件的属性(link file),则复制连接文件属性而非档案本身。
-f :为强制(force)的意思,若有重复或其他疑问时,不会询问使用者,而强制复制。
-i :若目的档已经存在时,在覆盖时会先咨询是否真的动作。
-l : 进行硬式连接(hard link)的连接档建立,而非复制文档本身。
-r :递归持续复制,用于目录的复制行为。
-s : 复制为符号连接文件(sumbolic link),亦即快捷方式档案。
-u : 若 destination比source旧才更新 destination.
Qt之qt4.7 和qt 4.8.4 交叉实践的更多相关文章
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...
- Qt 学习之路 :Qt 绘制系统简介
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的 ...
- Fedora15下搭建QT开发环境及编译QT
看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...
- Qt WebKit and HTML5 geolocation | Qt Project forums | Qt Project
Qt WebKit and HTML5 geolocation | Qt Project forums | Qt Project Qt WebKit and HTML5 geolocation I ...
- Qt Style Sheets Examples(QT真是有很全的文档)
http://doc.qt.io/qt-5/stylesheet-examples.html http://doc.qt.io/qt-4.8/stylesheet.html
- Qt Widgets、QML、Qt Quick的区别
Qt Widgets.QML.Qt Quick的区别 简述 看了之前关于 QML 的一些介绍,很多人难免会有一些疑惑: Q1:QML 和 Qt Quick 之间有什么区别? Q2:QtQuick 1. ...
- Qt Creator的安装与Qt交叉编译的配置
Qt Creator 的安装 到Qt官网下载Qt Creator https://www.qt.io/download-open-source/ 其它旧版本点击Achieve连接下载 或登录http ...
- Fedora15下搭建QT开发环境及编译QT(提前一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel )
看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...
- 减少Qt编译时间暨简单Qt裁剪
本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息.原文链接.原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途. 谢谢合作.原文链接:减少Qt编译时间暨简单Qt裁剪 编译一 ...
随机推荐
- 十、ios 模态窗口[实例]
一.模态窗口概念 对话框一般分为两种类型:模态类型( modal )与非模态类型( modeless ).所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话 ...
- 淘宝玉伯引发Web前后端研发模式讨论
淘宝玉伯是是前端基础类库 Arale 的创始人,Arale 基于 SeaJS 和 jQuery.不久前,淘宝玉伯在 Github 的 Arale 讨论页面上抛出了自己对于Web 前后端研发模式的思考. ...
- Hadoop.2.x_时间服务器搭建(CentOs6.6)
一.检查linux系统NTP是否被安装 [liuwl@hadoop09-linux-01 ~]$ [liuwl@hadoop09-linux-01 ~]$ rpm -qa | grep ntp ntp ...
- CWnd与HWND的简单辨析
今天在写一个小的网络应用,需要用到HWND类型的一个参数.而程序中有的“窗口操作句柄”只有一个CWnd类型的指针.这俩不都是“窗口句柄”么?而且反正都是地址直接转换使用如何?结果出现了调用失效的情况. ...
- spring security 图解过滤器的使用
1. HttpSessionContextIntegrationFilter 位于过滤器顶端,第一个起作用的过滤器. 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个Sec ...
- 使用webbench对不同的web服务器进行压力测试
1.webbench在linux下的安装步骤,如果安装过程失败,请检查当前用户的执行权限,如果报找不到某个目录的错,请自行创建指定的目录: #wget http://home.tiscali.cz/~ ...
- IOS第四天(1:图片的方法和缩小,遮罩层)
@interface HMViewController () @property (nonatomic, strong) UIButton *cover; //阴影 @end @implementat ...
- Java Web(转)
struts2+spring+hibernate 上传文件 关 键字: s2sh 上传文件 struts2 spring hibernate 前段时间,我用struts2.1.6.spring2.5. ...
- objective-c基础教程——学习小结
objective-c基础教程——学习小结 提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...
- javascript大神修炼记(7)——OOP思想(多态)
读者朋友们大家好,今天我们就接着前面的内容讲,前面我们已经讲到了继承,今天我们就来讲OOP目前最后一个体现,那就是多态,因为javascript语言的灵活性,所以我们是没有办法使用接口的,所以这也给j ...