[linux嵌入式方向]交叉编译qt-embedded-linux-opensource-src-4.5.1源码
farsight2009 发表于 2009-7-13 14:38:00
作者:孙晓明,华清远见嵌入式学院讲师。
首先要有配置好的环境,本文使用的编译环境如下:
主机系统:Ubuntu 8.10
主机编译器:gcc 版本 4.3.2
交叉编译器:arm-softfloat-linux-gnu-gcc
软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gz
qt-x11-opensource-src-4.5.1.tar.gz
因为一般嵌入式设备上都是在framebuffer的方式,在X11上就是用qvfb 来模拟framebuffer的,我们平时开发也都是在PC上完成的,所以我们需要先安装X11版的Qt来获取qvfb这个工具。嵌入式的开发有了 qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。
一、下载
qt-embedded-linux-opensource-src-4.5.1.tar.gz
qt-x11-opensource-src-4.5.1.tar.gz
二、编译安装qt-embedded
# tar -zxvf qt-embedded-linux-opensource-src-4.5.1.tar.gz
# cd qt-embedded-linux-opensource-src-4.5.1
# ./configure -embedded x86 -qvfb
# make
# make install
qt-embedded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.1
设置环境变量:
# vi ~/.bashrc
把下面的加上去
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.1
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.1/lib:$LD_LIBRARY_PATH
至此,qt-embedded安装完毕
三、编译安装qt-x11
# tar -zxvf qt-x11-opensource-src-4.5.1.tar.gz
# cd qt-x11-opensource-src-4.5.1
# ./configure
# make
# make install
qt-x11 被安装到此目录下/usr/local/Trolltech/Qt-4.5.1
编译qvfb:
# cd qt-x11-opensource-src-4.5.1/tools/qvfb
# make
/*****Added by PengCarl (12 December 2009)*****/
出现错误:/usr/bin/ld: cannot find -lXtst
解决:ubuntu没装有libxtst-dev,解决如下
# aptitude install libxtst-dev
/**********************************************/
把生成的qvfb复制到qt-embedded的bin下,如
# cp qt-x11-opensource-src-4.5.1/bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.1/bin
至此,qt-x11安装完毕完毕
四、测试
# cd /usr/local/Trolltech/QtEmbedded-4.5.1/demos/
# qvfb &
# ./chip -qws
随即我们就可以看到qt自带的例程图像了。
五、编译qt自带的例程
# cd /usr/local/Trolltech/QtEmbedded-4.5.1/demos/
# qmake chip.pro (生成Makefile文件)
# make
5、编译安装tslib1.4
1.首先下载tslib-1.4.tar.gz,下载地址:
2.解压文件后
记得现安装三个东西
#sudo apt-get install autoconf
#sudo apt-get install automake
#sudo apt-get install libtool
确认已经安装并设置好arm-linux-gcc
然后进行编译
#cd tslib/
#export CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
#export CXX=/usr/local/arm/3.4.1/bin/arm-linux-g++
运行
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
配置安装参数
#./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib/build -host=arm-linux --cache-file=arm-linux.cache 2>&1 | tee conf_log
编译
#make 2>&1 | tee make_log
#make install
编译后会出现bulid文件夹
#cd build/etc
#gedit ts.conf
去掉module_raw input前面的#号和空格移植到开发板
把build 文件夹拷贝到开发板相应的地方。我的就是拷贝到/home/tslib下
环境变量
#!/bin/sh
export set T_ROOT=/home/tslib/build
export set LD_LIBRARY_PATH=$T_ROOT/lib
export set TSLIB_CONSOLEDEVICE=none
export set TSLIB_FBDEVICE=/dev/fb0
#export set TSLIB_TSDEVICE=/dev/event0
export TSLIB_TSDEVICE=/dev/h3600_tsraw
export set TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export set TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export set TSLIB_CALIBFILE=/home/tslib/build/etc/pointercal
cd /home/tslib/build/bin
./ts_calibrate
在终端用env查看环境变量如下:
[root@utu-Linux]\$ env
TSLIB_TSDEVICE=/dev/event0
USER=root
LD_LIBRARY_PATH=/home/tslib/build/lib
OLDPWD=/hom