QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装

这几天一直在搭建QT的开发环境,遇到了各种问题,记录一些吧

linux:red hat 6.4

开发板:Micro2440


参考了这几个网上的文章: 都是系列文章,非常的详细。

http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html

http://blog.csdn.net/z1179675084/article/details/10170673

http://blog.csdn.net/zhaole20094463/article/details/7291829


可能没法截图了,如果出现一些错误的话,一般百度也能解决的。


安装QT 4.8.5 for X11版本(就是PC平台)

下载源码 :http://download.qt-project.org/archive/qt/

解压:

tar xzvf qt-everywhere-opensource-src-4.8.5.tar.gz

mv cp qt-everywhere-opensource-src-4.8.5 cp qt-everywhere-opensource-src-4.8.5-X11


配置:

cd qt-everywhere-opensource-src-4.8.5-X11

//这里X11版本的 直接配置就行了,编译时间是久了点,耐心等待

./configure

输入 o, yes 进行配置,生成Makefile文件,这里要几分钟


编译:

make  

这里make 要1~2小时左右


安装:

sudo make install

安装完成,默认安装在  /usr/local/Trolltech/Qt-4.8.5


还有一步,就是设置环境变量,终端输入qmake -v 查看下版本指向,最简单的做法是,直接删除掉/usr/bin/下的qmake,手动创建软链接到/usr/bin 重新 qmake -v 显示版本信息,看下是否对应 X11版本的qmake

设置环境变量如下

//qt-X11.sh
#!/bin/bash

export QTDIR=/usr/local/Trolltech/Qt-4.8.5 
export PATH=$QTDIR/bin:$PATH  
export MANPATH=$QTDIR/man:$MANPATH  
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

需要使用X11编译程序时,终端下  source qt-X11.sh 即可。


PC平台的基本上没遇到有问题,基本顺畅 

先不要删除这个文件夹哈,我们还要编译 x86嵌入式平台上的qvfb呢。



安装QT 4.8.5 for x86(嵌入式平台)版本

所谓X86嵌入式平台,理解成PC上的模拟器就行了,如果没有开发板的话,这个是很有必要装的,非常的方便。


解压:

tar xzvf qt-everywhere-opensource-src-4.8.5.tar.gz

mv cp qt-everywhere-opensource-src-4.8.5 cp qt-everywhere-opensource-src-4.8.5 -X86


配置:

cp qt-everywhere-opensource-src-4.8.5-X86

./configure -embedded x86 -qvfb -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
等待几分钟


编译:

gmake

linux环境下,gmake 跟 make 都一样的,这一步也要1-2小时左右,耐心等待


安装:

sudo gmake install

默认安装在 /usr/local/Trolltech/QtEmbedded-4.8.5

基本没遇到啥情况


编译qvfb模拟器

回到刚刚编译X11版本的文件夹

cp qt-everywhere-opensource-src-4.8.5-X11
cd /tools/qvfb

make

之后生成了qvfb默认在qt-everywhere-opensource-src-4.8.5的bin目录下


安装过程中可能出现如下错误。

错误:deviceskin.h:没有那个文件或目录,在ubuntu下:

apt-get install xorg-dev

make

redhat下挂载光盘:rpm -ivh libXtst-devel-1.0.99.2.-3.el6.i686.rpm

这里,我没遇到这情况


复制qvfb 到 /usr/local/Trolltech/QtEmbedded-4.8.5/bin 目录下


还有 设置环境变量

//qt-x86.sh
#!/bin/bash

export QTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5 
export PATH=$QTDIR/bin:$PATH  
export MANPATH=$QTDIR/man:$MANPATH  
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

基本是一样的,使用方法跟上面一样


安装QT 4.8.5 for ARM版本

编译这个版本,花了最多的时间。。。。


这里 先编译 tslib(tslib是触摸屏驱动,我们的QT程序要在开发板上跑,比较多的是通过触摸来操作的,所以需要tslib驱动)

编译tslib

下载tslib-1.4.tar.gz

解压:

tar xzvf tslib-1.4.tar.gz

配置:

cd tslib

./autogen.sh

./configure--prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes     

编译:

make

安装:

sudo make install

生成在  /usr/local/tslib下

基本编译通过,没遇到出错。

编译通过后,cd /usr/local/tslib/bin下,检查下程序类型

[hai@localhost bin]$ file ts_calibrate
ts_calibrate: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped
[hai@localhost bin]$

ARM平台,这样就对了!


开始编译arm平台版本

解压:

tar xzvf qt-everywhere-opensource-src-4.8.5.tar.gz

mv cp qt-everywhere-opensource-src-4.8.5 cp qt-everywhere-opensource-src-4.8.5 -ARM


配置:

//build.sh
#!/bin/bash
./configure \
-prefix=/usr/local/Trolltech/QtEmbedded-4.8.5-arm \
-opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib \
-I/usr/local/tslib/include \
-L/usr/local/tslib/lib

exit

配置,这一块,出来好多奇葩问题,最后参考别人的shell脚本,修改了下,才顺利配置成功的。

至于配置选项,应该都能看懂,可以修改安装目录,保持对应就好。

配置这一步,应该会出现一些类似

-qt-kbd-qvfb: unknown argument

-qt-mouse-qvfb: unknown argument

这里,得好好检查下,配置选项,可能是前面某一个选项没有加空格什么,估计很多人都是网页上直接复制配置过来的。

我还遇到了这样的情况

QTE .configure
The tslib functionality test failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR and QMAKE_LIBDIR in

这个问题,百度了方法,有些能配置通过,但是make的时候又出现问题,后来还是重新修改下配置选项解决的,开始还以为是tslib没编译好,就反复的在编译tslib...汗


编译:

make

//时间也要1-2小时左右

安装:

sudo make install

根据配置选项,安装在/usr/local/Trolltech/QtEmbedded-4.8.5-arm

环境变量:

//qt-arm.sh
#!/bin/bash

export QTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm 
export PATH=$QTDIR/bin:$PATH  
export MANPATH=$QTDIR/man:$MANPATH  
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

好吧,如果一切顺利的话,X11_X86_ARM_qvfb_tslib 都安装完毕,可能中间还会出现一些问题,耐心点吧!


下面先测试下X11平台

设置环境变量:

source qt-X11.sh

检查下

[hai@localhost setenv]$ source qt-x11.sh
[hai@localhost setenv]$ qmake -v
QMake version 2.01a
Using Qt version 4.8.5 in /usr/local/Trolltech/Qt-4.8.5/lib
[hai@localhost setenv]$
成功指向X11平台版本


写个测试程序

qt_hello.cpp
#include <QApplication>

#include <QLabel>

int main(int argc, char **argv)

{

	//初始化  图形 环境变量
	QApplication app(argc,argv);
	QLabel* label = new QLabel;	//创建label对象
	label->setText("Hello World!");	//设置label内容
	label->show();	//显示
	
	return app.exec();	

}


编译的时候,要保证在同一个终端哈,

//生成项目文件

qmake -project

//生成Makefile文件

qmake

//编译

make

编译完成生成qt_hello

打开:

QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装_第1张图片

测试成功!


测试X86平台

source qt-x86.sh

检查下

[hai@localhost setenv]$ source qt-x86.sh
[hai@localhost setenv]$ qmake -v
QMake version 2.01a
Using Qt version 4.8.5 in /usr/local/Trolltech/QtEmbedded-4.8.5/lib
[hai@localhost setenv]$

这里,别忘记,要把编译出来qvfb复制到 /usr/local/Trolltech/QtEmbedded-4.8.5/bin目录下


生成了,qt_hello程序,发现运行不了,这里就要用到qvfb了

终端下输入:qvfb &   //后台运行qvfb

会发现出来个小窗口,发现有点小,可以file-configure 设置下size 设置成640X480差不多了,不要关闭哈

好了,这时候,终端里面输入:

./qt_hello -qws

QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装_第2张图片

哈,就运行起来了。

这里可能会出现,鼠标使用不了,参考下:http://blog.csdn.net/lushujun2011/article/details/6835333 


测试ARM平台

跟上面一样

QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装_第3张图片

截图中看出来了,qt_hello是运行在ARM平台上的程序


开发板设置:

nfs火速开起来,

1.复制 上面编译出来tslib到 开发板上

cp tslib /usr/local/ -R

设置下 tslib/etc/ts.conf文件

修改为:

//ts_conf
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
不要留多余空格哈!


2.复制QT4.8.5 lib 到开发板的相同目录下

cp .../QtEmbedded-4.8.5-arm/lib /usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib -R


3.设置环境变量

//setenv-arm.sh
export  QTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm
export  T_ROOT=/usr/local/tslib
export  LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export  PATH=$QTDIR/bin:$PATH
export  QWS_MOUSE_PROTO=tslib:/dev/input/event0
export  QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0" 
export  QWS_SIZE='240x320'
export  TSLIB_CONSOLEDEVICE=none
export  TSLIB_FBDEVICE=/dev/fb0
export  TSLIB_TSDEVICE=/dev/input/event0
export  TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export  TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export  TSLIB_CALIBFILE=/etc/pointercal
这里要注意下,因为大家用的开发板可能不同,请检查好开发板是否存在   /dev/fb0  /dev/input/even0 这些文件,  可能有些开发板是其他名字的,修改一下就行了


4.最后一步,注释下,原来开发板自启动的QT

编辑开发板/etc/init.d/rcS文件

找到类似这样的语句

/bin/qtopia&   -->  #/bin/qtopia&

注释掉


5.测试

重新启动开发板,nfs挂起来

./qt_hello -qws

发现程序运行起来啦~!如果到这里,能看到界面了,但是鼠标操作不了,回去检查下tslib编译还有QT-arm平台的配置那一步

好了,测试完毕了。

-----------------------------------------------------------

安装Qt_Creator

下载:http://download.qt-project.org/archive/qtcreator/

这里根据需要下载相应的版本,如果是ubuntu可以选择新的版本,red hat 6.4 开始新版本没装上,少了什么库啥的,就没去弄了,我是直接装了2.5.2版本

chmod 777 qt-creator-linux-x86-opensource-2.5.2.bin

./qt-creator-linux-x86-opensource-2.5.2.bin

傻瓜式安装。。。

尝试安装2.8.1版本,打开弹出这样的窗口

换下低版本,如果是最新的Ubuntu的话,就不会出现这样的问题了

安装完毕后,桌面生成Qt Creator快捷方式,双击打开即可。

直接使用上,相信大家都会了,这里说下设置编译器的问题

添加 3个平台的编译器,设置好,到时设计完程序以后,可以相应的选择编译器编译,非常的方便.

打开Qt Creator--Tools--Options

QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装_第4张图片

应该大家都会了吧。。。

这里可能有人会出现这样的情况

QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装_第5张图片

这个问题是有点坑爹,我开始以为没有编译好,又倒回去重新编译过ARM平台的QT,搞死我了,后来百度找到了解决方法。

ToolChains -- add -- GCCE  定位到arm-linux交叉编译器的

看图就明白了,保存下,是不是正常了?


最后,解决QT中文乱码问题,参考下我的另一篇文章:解决QT中文乱码问题


这里再分享一个技巧,设置下x86运行参数,这样在Qt_Creator可以直接运行就可以了

QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装_第6张图片

看图应该明白了吧,加了运行参数,当然要先后台先运行qvfb.


是不是,很方便,哈哈~!

你可能感兴趣的:(QT4.8.5_X11_X86_ARM_Qt_Creator以及tslib和qvfb的安装)