在北京OURS-PXA270移植基于Qt3+opencv-0.9.7的应用程序,遇到的种种问题

      本人这两天在移植基于 Qt3+opencv-0.9.7 的应用程序到北京 OURS-PXA270 开发板上,其中的问题多多,到现在还没完全解决,但是也解决了遇到的一些问题,现在把它记录下来,以免以后再碰到类似问题,不知从何下手。

1、             在交叉编译时,提示在库目录中没有找到类似这样的库( -lcv -lcvaux -lcxcore -lhighgui ):

我在交叉编译之前,首先用非交叉编译并运行通过,但是到我再使用交叉编译的时候却无法找到那样的库,但我明明就是有添加进去的。后来在网上搜索,和向网友大牛们提问的时候,他们告诉我这是因为编译器的版本不一致,生成那些动态库的是一个编译器版本,但是编译工程文件的时候又是另外一个版本的编译器,所以即便你有把那库添加进去了也是找不到的,因为这不是它编译出来的库,它不认你。(没办法,呵……)

这样,我只能从新用交叉编译生成库文件了即使用 arm-linux-gcc 重新编译生成那些库,然后,把这些重新生成的库替换原来的,再重新编译工程,这样就顺利通过了。

2、             关于 ARM10 开发板上“ Illegal instruction ”的错误提示:

昨天把全部编译(在我自己电脑上编译的,跟实验室的电脑环境有点不一样,导致问题)好了的程序烧到开发板上,(一切顺利,心里有点小高兴,殊不知问题还多多呢)我运行“ ./camera –qws ”这个用到了 opencv 是视觉库的,出来错误提示: Illegal instruction ”,我先是在网上搜索答案,大多都是说是什么 EABI 吖,什么编译器不匹配啦, busybox 什么的,说实话,我都不懂 http://blog.csdn.net/qiaoliang328/archive/2009/11/24/4866367.aspx ,那些也没法帮我解决我的问题。我就继续问大牛们,他们很热心,帮我慢慢的分析;

最后,发现应该是浮点运算问题,因为视觉库 opencv 很多都用到浮点运算的,他们叫我检查 FP 的配置,我哪懂啊,又是上网查,难啊……后来,后来,他说如果我编译器支持软浮点运算的话,那就全部使用软浮点运算指定编译。这样我编译 make –msoft-float ”,“ –msoft-float ”参数指定使用软浮点运算,问题来了,提示说:“ ./OpenCVlib/libhighgui.so uses hardware FP, whereas camera uses software FP 

File format not recognized: failed to merge target specific data of file ./OpenCVlib/libhighgui.so

大概的意思就是“ libhighgui.so ”使用 hardware FP ,而“ camera ”使用 software FP ,所以不能通过(我这次是拿到实验室的电脑了, libhighgui.so 是在我自己电脑上编译的,不一样)。所以我就照着大大说,全部用参数“ -msoft-float ”指定软浮点运算。就是在重新编译生成库,也使用“ -msoft-float ”参数,编译工程文件是也使用“ -msoft-float ”,这样,大家都是使用软浮点运算了,所以就没有出错啦,通过……

编译好了以后,我再使用“ arm-linux-readelf -e camera ”来查看,发现是使用了软浮点了,有这么一句出来:“ Flags: 0x202, has entry point, GNU EABI, software FP ”,之前是没有“ software FP ”的,还有那个“ libhighgui.so ”也是一样。 OK ……!!!完成。

再到开发板上运行再也没有报错了!

相关的浮点运算与 Qt 移植问题,有一篇很好的文章参考: http://hi.baidu.com/adrain001/blog/item/7a40ac08777b409d0a7b82ac.html

3 、我有些程序放到开发板上面没有界面显示,其中它们都有包含 GSM 的,但有些可以显示,可以显示的都没有包含 GSM 的,所以我怀疑了,应该是 GSM 这个模块的程序在出错了。问题还没有解决呢……期待解决……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值