Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2172379
  • 博文数量: 374
  • 博客积分: 7276
  • 博客等级: 少将
  • 技术积分: 5669
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-06 16:35
文章分类

全部博文(374)

文章存档

2013年(23)

2012年(153)

2011年(198)

分类: LINUX

2011-11-22 15:14:57

Linux下实现Qt 4.6.3移植 (10.10篇) 是本篇介绍的内容,不多说先来看内容。

1、移植准备

1.1编译所需环境和资源

1、Qt源码包:Qt4.6源码包 :qt-everywhere-opensource-src-4.6.3.tar.gz

2、交叉编译工具:arm-linux-gcc-4.4.3-20100728.tar

3、触摸屏校验工具 :tslib-1.4.tar.gz

4、PC运行的OS 环境:Ubuntu10.10

5、mini2440开发板

1.2安装交叉编译器

把交叉编译工具包放到根目录下,执行命令如下:

  1. tar zxvf arm-linux-gcc-4.4.3-20100728.tar –C / 

解压后产生一个目录:/opt/FriendlyARM/toolschain/4.4.3,进入该目录,进入bin目录,执行命令如下:

  1. pwd>>/root/.bashrc 

接着执行命令如下:

  1. vi /root/.bashrc 

然后修改最后一行:export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH

为了使配置的环境立即生效,接着执行如下命令:

  1. source /root/.bashrc 

查看版本信息,执行命令:

  1. arm-linux-gcc –v 

出现正确版本,说明配置交叉编译器成功。

1.3 安装触摸屏校验工具

把tslib-1.4.tar.gz放到一个目录下,比如/opt目录下。接着执行命令如下:

  1. tar zxvf tslib-1.4.tar.gz 

执行命令cd tslib,进入tslib当前目录,接着执行命令如下:

  1. Source autogen.sh 

然后接着执行配置命令:

  1. ./configure     --prefix=/usr/local/tslib --host=arm-linuxac_cv_func_malloc_0_nonnull=yes 

最后执行编译命令和安装命令如下:

  1. make  
  2. make install 

如果以上步骤没错,则可以在/usr/local/tslib下出现我们需要的库文件,这些库文件我们移植时会用到。

1.4 编译Qt-4.6.3库文件

把qt-everywhere-opensource-src-4.6.3.tar.gz放到/opt目录下。接着执行命令如下:

  1. tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz 

接着把解压出来的目录重名成qt-embeded-4.6.3-arm,执行命令如下:

  1. mv qt-everywhere-opensource-src-4.6.3.tar.gz qt-embedded-4.6.3-arm 

进入qt-embedded-4.6.3-arm,然后执行配置命令,命令如下:

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

接着继续执行编译和安装命令,命令如下:

  1. make   
  2. make install 

以上都成功的话,就会在目录/usr/local/Trolltech/QtEmbedded-4.6.3-arm下看到基于ARM处理平台的Qt库文件。

2开始移植

2.1移植库到mini2440开发板

在开发板上建立目录如下:

  1. /usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin  
  2. /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/fonts  
  3. /usr/local/tslib 

复制所需运行库

把在pc机上编译好的库/usr/local/Trolltech/QtEmbedded-4.6.3/lib/下的所有文件全部复制到 /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib/下

复制触摸屏软件

把在pc机上编译安装好/usr/local/tslib/目录下的所有文件都复制到开发板/usr/local/tslib/下。

2.2在mini2440建立环境变量

用命令执行:vi /etc/profile,在里面增加如下内容:

  1. export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm  
  2. export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm   
  3. export TSLIB_ROOT=/usr/local/tslib  
  4. export PATH=$QTDIR/bin:$PATH  
  5. export TSLIB_CONSOLEDEVICE=none 
  6. export TSLIB_FBDEVICE=/dev/fb0  
  7. export TSLIB_TSDEVICE=/dev/input/event0  
  8. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts  
  9. export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf  
  10. export TSLIB_CALIBFILE=/etc/pointercal  
  11. export QWS_MOUSE_PROTO=Tslib:/dev/input/event0  
  12. export QWS_DISPLAY=LinuxFb:/dev/fb0  
  13. export QWS_SIZE=240x320 
  14. export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH 

修改mini2440上/usr/local/tslib/etc/ts.conf 文件:把第二行# module_raw input 前面的#和空格去除,保存退出。

2.3移植实现

首先在pc机上编译,进入程序(test_hello)目录,然后执行命令如下:

  1. /usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin/qmake 

然后执行编译命令:make

执行完后,用命令:file test_hello 是否为二进制文件。如果是,则说明编译成功,可以移植到mini2440开发板了。

把编译好的程序test_hello通过u盘复制到开发板/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin/目录下

然后通过终端执行./test_hello –qws –fonts wenquanyi,如果开发板出现自己的程序说明执行成功。


经过实际实验 确认可行  交叉编译器要使用交叉编译工具:arm-linux-gcc-4.4.3-20100728.tar

若使用4.3.2版本的  实际效果总是段错误 原因不知

阅读(2073) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~