暂时不想去费好大劲去移植Qte库然后才去Qt编程,就基于友善的Linux-2.6.32进行Qt编程,虽然可以通过Qtopia运行Qt4.6的demo,但是从命令行却无法运行,如图是运行自带的demo时出现的错误:
图(Qt-2)
说是缺少共享库libts-0.0.so.0经过搜索其在/usr/local/lib中并且是链接到同目录下的libts-0.0.so.0.1.1。这就说明有这个库,但是没有找到。
方法1:将其和被链接的库文件到/lib目录中,再运行那个demo,运行成功:
图(Qt-1)
但遗憾的是触摸屏不能用,那么我觉得这种方法进行下去不太好,应该走改环境变量那条路。还把那两个库放回原地。
方法2:修改环境变量
首先看看qt4是怎么启动的,打开/bin/qt4脚本:
#!/bin/sh
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/usr/local/lib
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin
export QWS_DISPLAY=:1
TS_INFO_FILE=/sys/devices/virtual/input/input0/uevent
if [ -e $TS_INFO_FILE -a "/bin/grep -q TouchScreen < $TS_INFO_FILE" ]; then
export QWS_MOUSE_PROTO="Tslib:/dev/input/event0 MouseMan:/dev/input/mice"
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/local/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
unset TS_INFO_FILE
export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root
cd /usr/local/Trolltech/QtEmbedded-4.6.3-arm/demos/embedded/fluidlauncher
./fluidlauncher -qws
hotplug
由shell脚本可知:原来友善之臂把环境变量什么的放在这这里边了。不过最终启动的是/usr/local/Trolltech/QtEmbedded-4.6.3-arm/demos/embedded/fluidlauncher目录下的fluidlauncher。那我就可以借力打力了,复制qt4为qt脚本,把28行删除,把29行改为:$1 -qws($1代表命令行的第一个参数)。
这样使用这个脚本启动刚才那个demo:
#qt ./emembeddedsvgviewer
运行结果如下图:
(图-3)
趁这个机会把自己编译的Qt程序也运行一下:
#qt ./clock2
运行结果如下图:
(图-4)
这样就可以安心地编写我的 Qt 应用程序了。