应用程序的移植(基于
Qt3
与
opencv- 0.9.7
制作)
1、
源程序的交叉编译,生成能够被
arm
执行的可执行文件“
***
”
然后使用命令
“
arm-linux-readelf �Cd ***
”来查看应用程序所依赖的库(其中“
***
”为可执行文件的文件名)
比如:
#arm-linux-readelf �Cd client
看到的其依赖的库有
[libqte.so.3]
、
[libcv.so.0]
、
[libcvaux.so.0]
、
[libcxcore.so.0]
、
[libhighgui.so.0]
、
[libstdc++.so.5]
、
[libm.so.6]
、
[libgcc_s.so.1]
并且:
Library rpath: [/usr/local/qt-embedded- 3.3.0 /lib]
这个有提示库的路径,但不是都在那里,呵呵,有一些会在那里就是啦!
当然,以可以直接挂载应用程序测试,它也会提示目标机上所缺少的库,但是我没有开发板在身边,所以只能这样了。而且这样比较方便……
2、
将可执行文件复制到扩展文件系统
junk
的
bin
目录下,并将缺少的库文件复制到扩展文件系统
junk
的
lib
目录下
(
我使用的是北京
OURS
的实验开发系统,他提供的文件系统有根文件系统,还有扩展文件系统。这样,我只对扩展文件系统
junk
来裁剪和修改,
尽可能不更改根文件系统)。
3
、
为了让应用程序图标出现在桌面应用程序列表中,必须添加对应的
.desktop
文件。在根文件系统
rootfs270copy
(自己复制一份的根文件系统,以防万一)的
usr/qpe/qpps/apps/Application
目录下建立文件
stopwatch.desktop
,大致内容如下:
[Desktop Entry]
Comment=A Client Program
Exec=Client -qws
Icon=Client //
桌面显示图标文件,省略扩展名
Type=Application
Name=Client //
桌面应用程序显示名称
Name[no]=Klokke
Name[de]=Uhr
Name[zh_CN]=Client
4
、设置相应的环境变量,特别是
LD_LIBRARY_PATH
(共享库的路径),
qpe.sh
内容如下:
export QTDIR=/usr/qpe
export QPEDIR=/usr/qpe
export LANG=zh_CN
export LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH
export QT_TSLIBDIR=/usr/qpe/lib
export TSLIB_CONFFILE=/usr/qpe/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/qpe/lib
export QWS_MOUSE_PROTO=TPanel:/dev/touchscreen/ucb1x00
#export QWS_MOUSE_PROTO=TPanel:/dev/ts
export KDEDIR=/usr/qpe
cd /usr/qpe/bin
./ts_calibrate //
触摸屏校准程序
./qpe �Cqws //
启动桌面系统
经过上述四个过程后,重新生成根文件系统映像
xscale_fs.jffs2
和扩展文件系统
junk.jffs2
,烧写到开发板上,重新启动开发板,就可以看到桌面系统中新增加的应用程序图标,单击图标出现
自己的应用
程序的界面。
以上过程步骤是
copy My Teacher
的,照着他的步骤做的,感 谢 老师!!!