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

FL2440下的QT安装编译过程介绍

2016-04-07 23:14 585 查看

【1】环境介绍

宿主机:CentOS-6.7-x86_64

交叉编译器: buildroot-2012.08

开发板根文件系统:initramfs

需要的软件包:【buildroot-2012.08】

【qt-everywhere-opensource-src-4.8.5.tar.gz】

【tslib-1.4.tar.gz】下载地址:http://download.csdn.net/detail/xiehongjun_hee/9484948

【2】相关安装

相关软件已经放出来了,交叉编译的制作以及开发板根文件系统的制作,可以在网上找相关教程安装,这里不做赘述。

【3】安装编译tslib

(1)建立工作目录

$ cd ~
$ sudo mkdir /usr/local/tslib
$ sudo mkdir /usr/local/qt4.8.5-arm
$ mkdir qt-arm
$ cd  qt-arm


(2)此外如果linux里还没有automake、libtool 两个工具可以用yum进行安装

#yum install automake
#yum install libtool


(3)在安装编译tslib之前要做的一个工作是添加环境变量,把交叉编译器的的路径加入到PATH中(具体情况需根据自己的情况来加入,我的交叉编译器路径为:/opt/buildroot-2012.08/arm920t/usr/bin。为操作方便我大多操作都已经进入root模式。),现在提供两个方法:

#export PATH=$ /opt/buildroot-2012.08/arm920t/usr/bin


(注意“=”两边不能有空格,不然会提示如下错误: ”bash: export: not a valid identifier“)

# vi ~/.bashrc


在最后把/opt/buildroot-2012.08/arm920t/usr/bin添加进去,如:

PATH=$PATH:/opt/buildroot-2012.08/arm920t/usr/bin

之后在执行 #source ~/.bashrc ,使设置的环境变量生效。最后可以检是否将路径添加到PATH中:

#echo $PATH


如果成功,在显示的内容中会有交叉编译器的路径:/opt/buildroot-2012.08/arm920t/usr/bin

(4)编译安装tslib,将源码包复制解压
4000
到当前工作目录(我的源码包都放在tftp下)

$cp  /tft/tslib-1.4.tar.gz  ./
$tar zxvf tslib-1.4.tar.gz
$cd tslib


# ./autogen.sh
# ./configure CC=arm-unknown-linux-uclibcgnueabi-gcc CXX=arm-unknown-linux-uclibcgnueabi-g++ - -prefix=/usr/local/tslib
- -host=arm-linux ac_cv_func_malloc_0_nonnull=yes


(这里是配置tslib,安装路径可以通过- -prefix的参数设置,我这里是安装到/usr/local/tslib下,另外CC和CXX需根据自己的交叉编译器进行指定)

#make && make install


(进行编译安装,完成以后tslib会按参数设置安装到/usr/local/tslib下,进入下一步之前,先将/usr/local/tslib/etc/ts.conf文件第二行“ #module_raw input ”注释去掉,变为“ module_raw input ”,注意一定要顶格)

【4】编译安装qt

(1)同tslib,先对qt-everywhere-opensource-src-4.8.5.tar.gz进行解压

$ cd ~/qt-arm
$ cp /tftp/qt-everywhere-opensource-src-4.8.5.tar.gz  ./
$ tar zxvf qt-everywhere-opensource-src-4.8.5.tar.gz
$cd qt-everywhere-opensource-src-4.8.5


(2)指定交叉编译器

# vim mkspecs/qws/linux-arm-g++/qmake.conf


对里面的参数进行修改,将arm-linux-全部替换arm-unknown-linux-uclibcgnueabi-(注意:根据自己编译器而定,并且一定要先将交叉编译器的路径加入PATH变量中),并加上-lts,最后保存退出。如下



(3)然后就是配置qt,同样的,要对qt使用 –prefix 指定安装路径,-I后面指定上一步tslib的include路径,-L后面指定上一步tslib的lib路径:

# sudo mkdir /usr/local/qt4.8.5-arm

# ./configure -prefix /fl2440 -debug-and-release -qt3support -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake examples -nomake demos -nomake docs -no-cups -iconv -xplatform qws/linux-arm-g++

-embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen -no-dbus -qt-sql-sqlite -qt-kbd-qvfb -qt-kbd-tty -qt-mouse-pc -no-glib -plugin-mouse-tslib -I/home/mytslib/include /home/ mytslib/lib -D _ _ ARM_ARCH_5TEJ_ _



分别输入 o 和 yes ,表示你想要使用开源的以及接受条款

这里你可能会遇到几个问题

1.
The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR in

******************(linux-arm-g++的地址)


解决方法:

请重新设置PATH环境变量,如果还是不能解决,再修改mkspecs/qws/linux-arm-g++/qmake.conf,将交叉编译工具改为绝对路径,然后重新使之生效。如前文设置

2.The target system byte order could not be detected!Turn on verbose messaging (-v) to see the final report.You can use the -little-endian or -big-endian switch to

./configure to continue.

这是因为你在./configure配置参数是没有 加上 “ -little-endian”“-xplatform qws/linux-arm-g++”(一般是采用小端字节序)。这个时候选择执行

#./configure -little-endian


就可以了。但奇怪的是我这样操作执行时会反复提示这个问题, 最后我在 ./configure 添加上述参数时就好了。

(4)编译安装

#make && make install


这里编译时间稍微长一点,之后会安装到/usr/local/qt4.8.5-arm下

【4】配置与移植QT

(1)设置环境变量

#export PATH=$PATH:/usr/local/qt4.8.5-arm/bin
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/qt4.8.5-arm/lib


(2)移植

需要移植的文件有编译后的 tslib 和 qt 目录下的 lib 。为方便操作,先将两个文件进行压缩:

$ cd /usr/local/qt4.8.5-arm
$ tar -zcf lib.tar.gz lib
$ cd /usr/local
$tar -zcf tslib.tar.gz tslib


然后将压缩文件复制到开发板上(注:tftp或者用U盘挂载),再解压:

mkdir -p /usr/local/qt4.8.5-arm
tar xzvf lib.tar.gz -C /usr/local/qt4.8.5-arm
tar xzvf tslib.tar.gz -C /usr/loacal


在开发板上设置环境变量,在此之前先建立一个文件:setqt,并输入内容

vi setqt


export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/usr/local/qt4.8.5-arm
export T_ROOT=/usr/local/tslib
export PATH=$T_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
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
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/ input/event0
export QT_QWS_FONTDIR=$QTDIR/lib/fonts


然后设置好qt的环境变量:

source setqt


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