飞凌OK210开发板Ubuntu下Qt4.7.1编译环境配置说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Qt4.7.1交叉编译环境配置
1.编译tslib (2)
2.编译Qt4.7.1 (3)
3Qt creator的安装 (5)
Qt4.7.1交叉编译环境配置
PC环境:Ubuntu12.04
开发板:OK210
交叉编译器:arm-2009q3(即4.4.1)
1.编译tslib
tslib库,是触摸屏校准时需要的库文件,如对触摸屏的数据进行过滤、去抖动等,QT的库会调用tslib的库文件.
编译tslib库
1.1将tslib.tar.gz,拷到Ubuntu下,解压tar xzvf tslib.tar.gz;
1.2安装autoconf、automake、libtool包
在Ubuntu命令行中分别执行以下三个升级命令。
#sudo apt-get install autoconf
#sudo apt-get install automake
#sudo apt-get install libtool
#sudo apt-get insintall g++
1.3进入tslib目录:
cd tslib;
设置环境变量
#export PATH=/usr/local/arm/arm-2009q3/bin:$PATH
#export TOOLCHAIN=/usr/local/arm/arm-2009q3
#export TB_CC_PREFIX=arm-linux-
#export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
1.4在tslib目录下运行脚本
./autogen.sh
1.5用configure生成Makefile.
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
-host=arm-linux
--cache-file=arm-linux.cache2>&1|tee conf_log
1.6编译安装
make2>&|tee make_log
1.7make install
1.8编译完成后检查主机目录‘/usr/local/arm/’下面是否已经有了‘tslib’文件夹,如果有的话,请修改etc文件夹下的‘ts.conf’,去掉“#module_raw input”中的#号和空格,如下图所示。
如果主机目录‘/usr/local/arm/’下没有‘tslib’文件夹,请将前面编译好的‘tslib’文件夹拷贝到‘/usr/local/arm’目录下。
另外需要把这个‘tslib’文件夹放到网络文件系统目录中的‘/usr/local’下面。
2.编译Qt4.7.1
2.1将qt-everywhere-opensource-src-4.7.1.tar.gz拷贝到Ubuntu下,进行解压,tar zxvf qt-everywhere-opensource-src-4.7.1.tar.gz如下图所示:
2.2查看build-all脚本里的编译设置(gedit build-all),尤其是环境变量和路径的设置;确保正确后执行./build-all
2.3编译时可能会提示错误:
Lib/libQtGui.so:undefined reference to‘ts_read_raw’Lib/libQtGui.so:undefined reference to‘ts_open’
Lib/libQtGui.so:undefined reference to‘ts_fd’
Lib/libQtGui.so:undefined reference to‘ts_config’
Lib/libQtGui.so:undefined reference to‘ts_close’
Lib/libQtGui.so:undefined reference to‘ts_read’解决办法:
修改/mkspecs/qws/linux-arm-g++/qmake.conf文件(添加lts参数) QMAKE_CC=arm-linux-gcc-lts
QMAKE_CXX=arm-linux-g++-lts
QMAKE_LINK=arm-linux-g++-lts
QMAKE_LINK_SHLIB=arm-linux-g++-lts
3Qt creator的安装
3.1您可以使用QtCreator集成开发环境开发Qt应用,QtCreator很类似于Windows上的VC++集成开发环境,可以进行控件的可视化,所见即所得,使用该软件可以开发PC上的Qt应用和嵌入式环境下的Qt应用。
下载QtCreator方法,在Ubuntu的Applications主菜单下,有一项“Ubuntu SoftwareCenter”,点击后,在弹出的对话框中输入Qt Creator,会列出该软件,点击install安装即可;安装前确保您的Ubuntu能够访问互联网,该软件会从Ubuntu的服务器下载.安装完成后Application->Programming->Qt Creator就是该开发工具。
3.2建立QtCreator开发环境
3.2.1设置Tool Chains,点击Qt Creator的Tools菜单下的Options,点击Add 添加GCCE,然后点击Browse添加相应的路径,如图所示:
3.2.2Qt Versions的设置:点击Add找到Qt
4.7.1的qmake文件,添加进去,之后点击Apply即配置完成。
3.3利用Qt Creator环境制作属于您的Helloworld 飞凌以经典的Helloword应用程序为例,说明一下如何把Qt应用程序移植到飞凌的开发板上运行,Helloword程序基于新编译的Qt
4.7.1库文件运行,创建Helloword 这个过程比较简单,用户看图即可实现。
3.3.1File-New
3.3.2选择Q4Gui Application后。
输入工程的名称:HelloWord即可;其它默认,base class选择QDialog,如下图:
3.3.3通过图形界面对HelloWord程序进行设置,如下图:
3.3.4设置完成后编译出来的是pc机下运行的版本;我们可以通过projects进行版本设置来编译出适用于开发板的程序,通过projects中的设置选择Qt的版本Qt
4.7.1(qt4.7.1)Release如下图:
3.3.5设置好后,再进行编译,则得出的即是可在开发板上运行的版本
注意:可以使用以下方法来判断您编译出来的Helloword是PC Ubuntu上运行的脚本还是开发板上的运行脚本:进入到存放Helloword应用程序的目录下:执行命令:#file Helloword结果为:
开发板版本:
Helloword:ELF32-bit LSB executable,ARM,version1(SYSV),dynamically linked (uses shared libs),for GNU/Linux 2.6.16,not stripped PC Ubuntu版本:
Helloword:ELF32-bit LSB executable,Intel80386,version1(SYSV), dynamically linked(uses shared libs),for GNU/Linux 2.6.24, BuildID[sha1]=0x601ba185ddd61cf5786e9437321bd2242900c3dd,not stripped
3.4在开发板上运行,需要设置环境变量,可以做一个脚本,脚本内容如下(举例):#!/bin/sh
base1=qpe
pid=`/bin/pidof$base1`
if[-n"$pid"];then
killall$base1
fi
base2=qss
pid=`/bin/pidof$base2`
if[-n"$pid"];then
killall$base2
Fi
base3=quicklauncher
pid=`/bin/pidof$base3`
if[-n"$pid"];then
killall$base3
fi
base4=fluidlauncher
pid=`/bin/pidof$base4`
if[-n"$pid"];then
killall$base4
fi
export TSLIB_ROOT=/usr/local/tslib #export TSLIB_TSDEVICE=/dev/input/event2 export TSLIB_TSEVENTTYPE=H3600 export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0 export QTDIR=/opt/qt-4.7.1/
export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/: $QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/root/tslib/build/bin
if[-c/dev/input/event2];then if[-f/proc/driver/ft5x06_ts];then echo"capacitor panel touch..."
export QWS_MOUSE_PROTO='Tslib:/dev/input/event3' else echo"resistance panel touch..."
export QWS_MOUSE_PROTO='Tslib:/dev/input/event2'
fi
if[!-e/etc/pointercal];then /bin/calibrate fi
if[-e/etc/pointercal-a!-s/etc/pointercal];then rm/etc/pointercal /bin/calibrate fi else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
>/etc/pointercal fi export QWS_KEYBOARD=TTY:/dev/tty1
FB_SIZE=$(cat/sys/class/graphics/fb0/virtual_size)
#export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1" case"$FB_SIZE"in 800,480) export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1" ;; 480,272) export QWS_DISPLAY="LinuxFb:mmWidth76:mmHeight44:1" ;; *)
export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1"
;;
esac
#export QWS_DISPLAY=:1
export HOME=/root/QtE4Home
cd/opt/qt-4.7.1/demos/embedded/fluidlauncher
#./fluidlauncher-qws
/qt4.7/lincom-qws
最后一行为应用程序及此脚本的路径,将该脚本和应用程序放在同一路径下,执行脚本即可调用应用程序。