整了一天,总算可以把自己的程序在MINI6410上跑起来了,看开发手册上有几点错,把人整死了
做个笔记
环境搭建
获取源码
在mini6410光盘A的以下路径“开发文档和教程\01 Qt4和Qtopia编程开发指南\源代码\第三
章\3-3”可以拿到Qt4.7.0源代码的原始包qt-everywhere-opensource-src-4.7.0.tar.gz,将其拷
贝到 /opt 下,然后在linux终端上输入如下命令(不用键入#),在/opt/mini6410下解压Qt4.7.0
的源码包:
# cd /opt/mini6410
# tar xvzf /opt/qt-everywhere-opensource-src-4.7.0.tar.gz
(注:如果还没有创建 /opt/mini6410 目录,请输入 mkdir –p /opt/mini6410创建。
交叉编译
执行以下命令执行Qt4.7.0编译前的配置:
# /opt/mini6410/qt-everywhere-opensource-src-4.7.0
# echo yes | ./configure -prefix /opt/Qt4.7 -opensource -embedded arm -xplatform
qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib
-qt-mouse-pc -no-mouse-linuxtp -no-neon
上面的主要参数含义说明如下:
-embedded arm: 表示将编译针对arm平台的embedded版本;
-xplatform qws/linux-arm-g++: 表示使用arm-linux交叉编译器进行编译;
-qt-mouse-tslib: 表示将使用tslib来驱动触摸屏;
-prefix /opt/Qt4.7: 表示Qt4.7最终的安装路径是 /opt/Qt4.7 ,注意,部置到mini6410开
发板时,也需要把Qt4.7放在这个路径上;
执行以下命令进行编译并安装Qt4.7:
# make && make install
上面命令中出现的&&符号表示只有左边的make 命令执行成功时(返回0),才会执行右边的make
install命令。
编译完成后,Qt4.7被安装在 /opt/Qt4.7 目录下。
在PC上执行如下命令将Qt4.7打包:
# cd /opt
# tar cvzf qt4.7.tgz Qt4.7
打包完成后,将qt4.7.tgz拷贝到 SD卡, 然后将SD卡插入mini6410开发板,执行以下命令将qt4.7.tgz
我的板子空间不够了,然后QT4.7目录下的demos example没有打包进去,直接删除/opt目录中的所有内容重启
解压到开发板上的/opt目录下:
@# rm /usr/local/Trolltech/QtEmbedded-4.7.0-arm/ -rf
@# cd /opt
@# tar xvzf /sdcard/qt4.7.tgz
(注:在上述命令中,为了保证有足够的空间存放我们自已编译的Qt4.7, 我们先将友善之臂提供的Qt4.7
删除掉)
注意,一定要保持Qt4.7的目录为 /opt/Qt4.7, 因为我们在配置Qt4.7时,指定了-prefix 参数为
/opt/Qt4.7 。
至此,Qt4.7在mini6410上部署完成了,接下来我们将运行一个示例程序来测试Qt4.7是否能正常工
作。
环境搭建完成
运行应用程序
在我们部署到 mini6410开发板上的Qt4.7的/opt/Qt4.7/examples/目录就带有不少的示例程序,并且已
经编译好生成有可执行文件,我们试着直接运行一个程序试试:
@# /opt/Qt4.7/demos/embedded/fluidlauncher/fluidlauncher
程序没法运行,提示有错误,原因是Qt4.7的环境没有设置好,为了更方便地运行Qt4程序,我们先
编写一个脚本setqt4env,这个脚本用于设置Qt4.7所需要的环境变量。
输入以下命令创建并编写脚本 /bin/setqt4env :
@# vi /bin/setqt4env
在vi编辑器中输入如下内容:
#!/bin/sh
if [ -e /etc/friendlyarm-ts-input.conf ] ; then
. /etc/friendlyarm-ts-input.conf
fi
true ${TSLIB_TSDEVICE:=/dev/touchscreen}
TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE
export TSLIB_CONFFILE
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin
if [ -c /dev/touchscreen ]; then
export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root
将脚本设置可执行权限:
@# chmod +x /bin/setqt4env
现在再试一下运行示例程序:
@# . setqt4env
@# cd /opt/Qt4.7/demos/embedded/fluidlauncher/
@# ./fluidlauncher -qws
上面的命令中,先调用setqt4env 设置一下环境变量,再调用示例程序,注意,setqt4env 命令前面的
“.”与setqt4env之间要有一个空格隔开,表示脚本中导出的环境变量将应用到当前shell会话中
然后上面红色那一句,实际LIB不在这个路径,需要改成实际 /opt/Qt4.7/lib, 才对, 这样你的程序就可以正常运行了,
添加开机启动
修改 /etc/init.d/rcS文件:
@# vi /etc/init.d/rcS
把文件中的:
/bin/qtopia &
改成:
. setqt4env
image_analy –qws&
然后重启开发板即可