您的位置:首页 > 编程语言 > Qt开发

移植Qt到开发板的过程

2014-02-14 01:21 295 查看
做linux大半年了,接触QT也有一段时间了,从来没有成功的把QT移植到开发板上去,过完年闲得无聊,试了哈。今天能够成功的把QT的一个界面软件运行在开发板上了,写下此文,以防止如果有一天忘记了,能够通过查看此文档,复习哈。也方便各位学习指导。本人新手,如有不对的地方,还请见谅,和斧正。

平台:虚拟机:VMware Workstation

PC机操作系统:ubuntu12.04

编译环境:GCC,G++,arm-linux-gcc 4.4.1

qt-creator-linux-x86-opensource-2.7.0.bin

Qt
libraries 4.8.4 for embedded Linux

tslib-1.4.tar.gz

大概理一下思路,对于PC机端:需要先编译tslib,主要用于生成触摸屏相关的库文件,方便QT调用,在编译Qt libraries 4.8.4 for embedded Linux,用于生产库QT库文件,对于Qt libraries 4.8.4 for embedded Linux的编译,有两种方式,一种是编译在PC机下使用,一种是在arm下使用,编译Qt libraries 4.8.4 for embedded Linux后会生成一个QT下的编译环境qmake。在成功编译完Qt libraries 4.8.4
for embedded Linux后,生产的QT库和qmake备用,arm编译下的QT库通过NFS方式拷贝到开发板上备用。接下来详细说明每一个步骤:

一、Tslib 移植

获取 tslib-1.4.tar.gz

1、安装必要的库和环境(PC机执行)

#sudo apt-get install autoconf

#sudo apt-get install libtool

#sudo apt-get install automake

2、解压

tar xvzf tslib-1.4.tar.gz

3、进入tslib目录

#cd tslib

4、设置环境变量和交差编译器路径

#export PATH=/usr/local/arm/4.4.1/bin:$PATH

#export TOOLCHAIN=/usr/local/arm/4.4.1

#export TB_CC_PREFIX=arm-linux-

#export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux

(这是我的交差编译器的安装位置,请根据实际情况指定交差编译器位置)

5、 执行脚本

#./autogen.sh

#echo "ac_cv_func_malloc_0_nunnull=yes" > arm-linux.cache

6、配置

#./configure –host=arm-linux /

--cache-file=arm-linux.cache /

--enable-inputapi=no /

PLUGIN_DIR=/usr/local/arm/stlib/plugins /

–prefix=/usr/local/arm/tslib/build /

--host=arm-linux /

--cache-file=arm-linux.cache 2>&1 | tee conf_log

以上的设置 ”/“为空格不用换行,使用的时候,不要复制使用,怕有不可识别字符导致配置错误

在--prefix指定的路径/usr/local/arm/tslib/build 会生成编译好的tslib文件

7、编译

#make 2>&1 | tee make_log

#make install

编译完成,可查看/usr/local/arm/tslib生成的tslib文件

二、Qt4.8.4 移植

1、复制qt-everywhere-opensource-src-4.8.4.tar.gz 库文件在ubuntu12.04下面的任何文件夹

2、安装需要的库

#Sudo apt-get install libxext-dev

3、解压qt-everywhere-opensource-src-4.8.4.tar.gz

#tar xzvf qt-everywhere-opensource-src-4.8.4.tar.gz

4、进入qt-everywhere-opensource-src-4.8.4

#cd qt-everywhere-opensource-src-4.8.4

5 、编译

a、编译到PC端使用的库,虽然我们在使用过程中不一定会使用,但是,我们可以编译出来方便调试

1)、配置

#.configure -prefix /usr/local/qt-x11/qtlib(指定编译完成的生成路径,路径请先建立)

2)、编译

#make (这个过程很久,大概在2个半小时后左右,需要等待,可以去玩一会儿)

#make install

完成编译以后,成功编译的话可以在生成路径/usr/local/qt-x11/qtlib 看到编译好的库文件,在qtlib/bin下面能够看到我们要使用的qmake工具

b、编译ARM版本下的库文件,如果进行了a步骤(编译到PC端使用的库)请执行清除配置命令

#make confclean

1)、修改文件 qmake.conf

#cd qt-everywhere-opensource-src-4.8.4/mkspecs/qws/linux-arm-g++

#sudo qmake.conf

打开这个配置文件,主要是设置 TSLIB_INCDIR 和 TSLIB_LIBDIR路径,路径设为你安装的tslib路径(编译tslib生成文件存放路径) ,下面是qmake.conf 文件内容,加入TSLIB_INCDIR 和 TSLIB_LIBDIR即可



2)、在qt-everywhere-opensource-src-4.8.4目录下新建一个脚本文件Build_qt.sh

#./configure -h

#sudo gedit Build_qt.sh

在脚本文件下输入如下内容:

#!/bin/bash

./configure\

-prefix /usr/local/qt-arm/qtlib \

-release\

-opensource \

-embedded arm \

-shared\

-no-fast \

-no-largefile\

-no-accessibility \

-stl \

-qt-sql-sqlite\

-qt-libjpeg\

-qt-libpng\

-no-qt3support \

-xplatform qws/linux-arm-g++ \

-little-endian -host-little-endian \

-no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 \

-no-avx -no-neon \

-no-phonon -no-phonon-backend \

-no-svg\

-no-webkit\

-no-javascript-jit\

-no-script\

-no-openssl\

-no-nis\

-no-cups\

-nomake docs \

-qt-mouse-pc \
-qt-mouse-tslib

保存关闭,-prefix /usr/local/qt-arm/qtlib为生成的arm下执行的库文件的路径。

3)、修改脚本文件Build_qt.sh权限

#chmod 777 Build_qt.sh

4)、执行脚本文件

#./Build_qt.sh

该过程会比较久,可以去喝口水,玩一会儿在回来

5)、编译

#make

#make install

完成编译后,会在-prefix /usr/local/qt-arm的路径下看到编译好的库文件qtlib

在/usr/local/qt-arm/qtlib/bin下能够看到qmake文件。做完以上步骤,我们已经安装完了qt库文件和qmake。

三、安装qt-creator-linux-x86-opensource-2.7.0.bin,这个是在ubuntu下面最QT
GUI的编程软件。安装完了qt-creator-linux-x86-opensource-2.7.0.bin,打开软件进行配置。

1 、打开QT



点击工具栏的tools-->options

然后选择Build&Run



先选择Compilers
用于指定编译器,点击Add-GCC



在Name里面输入:linux-arm-g++,点击Browes,指定arm-none-linux-gnueabi-g++的路径,这个是你安装的arm-linux交差编译器的/bin文件夹下面的一个文件:arm-none-linux-gnueabi-g++





然后选择Qt
Versions指定qmake路径,点击Add,Versions
name:Qt 4.8.4(qtarm),点击Browse,指定qmake的路径,这个路径是你编译好qt-everywhere-opensource-src-4.8.4的生成的库文件的路径,在/bin下面有qmake。



在点击Kits,照如下图设置。就完成了整个设置过程。



用qt-creator新建一个项目,点击File-->NEW
File or Project...新建QT项目 ,然后选择Applications,新建项目。

编译好QT软件后, 点击右边的Projects可以查看生成文件的路径。把生成文件拷到开发板上。

如下操作是在开发板上执行,

1、从PC机拷贝文件,1、库文件,tslib 和qtlib/lib qt生成的执行文件

2、环境变量的设置

export set QT_QWS_FONTDIR=/usr/local/qtlib/lib/fonts

export set LD_LIBRARY_PATH=/usr/local/qtlib/lib:$LD_LIBRARY_PATH

export set QWS_MOUSE_PROTO="TSLIB:/dev/input/event0 "

export set LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH

export set TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf

export set TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts

export set TSLIB_CALIBFILE=/etc/pointercal

export set TSLIB_FBDEVICE=/dev/fb0

export set TSLIB_TSDEVIEC=/dev/input/event0

设置这些环境变量,注意你的库存放的路劲。

3、运行 qt执行文件

#./test -qws

见证奇迹的时刻到了。呵呵。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: