您的位置:首页 > 其它

讯飞在线命令识别 动态库 交叉编译后找不到的问题

2015-06-25 10:05 351 查看
环境配置:

树莓派B+ , ubuntu 14.04, ROS, wiringPi, vs1003B, 讯飞在线语音识别库

系统功能:

通过vs1003的麦克风采集声音,然后将声音转码为讯飞要求的pcm格式,然后在树莓派中调用讯飞提供的在线命令识别API,完成语音识别功能.

碰到的问题:

开始时从网上找了比较流行的arm-linux-gcc 4.4.3版本的交叉编译器,在PC上所有代码和库都能编译通过.

将交叉编译器交给讯飞开发人员后,他们免费提供了在线的命令识别动态库.

将自己代码和讯飞语音库等编译通过,但是运行时发现找不到libmsc.so库. 通过ldd命令,可以看到找不到libmsc.so的提示.

解决的过程:

在网上搜索了很多帖子,大多是让修改LD_LIBRARY_PATH或者/etc/ld.so.conf文件,然后运行sudo ldconfig -v命令,但是依然无法找到.

后来怀疑是我的树莓派B+运行的 arm-linux-gnueabihf 4.6.3版本的编译器,与提供给讯飞的编译器不一致,可能是库不一致,导致的问题.

本来打算自己用crosstool-ng生成一个交叉编译器,但是考虑到时间成本,后来还是在网上搜到了树莓派本身提供的交叉编译器.

可以参考帖子:
http://www.cnblogs.com/emouse/archive/2013/06/07/3124063.html
或者从CSDN下载:
http://download.csdn.net/detail/canyue102/6725615
验证:

后来我在PC上自己用树莓派提供的交叉编译器和自己在网上找到的4.4.3的编译器,分别自己生成了2个动态库,在树莓派上运行发现,的确,用树莓派提供的交叉编译器,可以被

在树莓派上编译生成的程序找到,4.4.3的则无法找到.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: