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

来源:互联网 发布:网络打印app 编辑:程序博客网 时间:2024/05/01 01:29

环境配置:

    树莓派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的则无法找到.



0 0