Ubuntu18.04 + ROS melodic 用 catkin_make编译robot_voice时报错:
[ 12%] Building C object robot_voice/CMakeFiles/iat_publish.dir/src/speech_recognizer.c.o cc1: warning: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C [ 25%] Building C object robot_voice/CMakeFiles/iat_publish.dir/src/linuxrec.c.o cc1: warning: command line option ‘-std=c++11’ is valid for C++/ObjC++ but not for C [ 37%] Linking CXX executable /home/mc/ros/vision/devel/lib/robot_voice/iat_publish /usr/bin/ld: 找不到 -lmsc collect2: error: ld returned 1 exit status robot_voice/CMakeFiles/iat_publish.dir/build.make:164: recipe for target '/home/mc/ros/vision/devel/lib/robot_voice/iat_publish' failed make[2]: *** [/home/mc/ros/vision/devel/lib/robot_voice/iat_publish] Error 1 CMakeFiles/Makefile2:449: recipe for target 'robot_voice/CMakeFiles/iat_publish.dir/all' failed make[1]: *** [robot_voice/CMakeFiles/iat_publish.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j12 -l12" failed
然后找到一个贴子,说是要到科大讯飞的平台去导出资源才行,我摘录一下在下面,
科大讯飞sdk
控制台下载:https://console.xfyun.cn/services/aisound 如果没有账号,建议注册一个,官网,再通过实名认证后,进入右上角控制台:
选择创建应用,输入相关信息后,你就成功创建一个应用了。 进入该应用,然后选择离线语音,下载linux版本的sdk
这是一个zip文件,我不想在docker里面安装unzip,所以重新打包成tar文件上传至服务器。
解压到工作空间或者系统目录后:
cd /libs/x64 # 如果你是64位
cd /libs/x86 # 如果你是32位
cp libmsc.so /usr/lib/libmsc.so
这样就完成了。
编译mrobot过程中缺少的其他库,可以通过apt install下载。 例如:
apt-get install ros-kinetic-ecto ros-kinetic-manipulation-msgs ros-kinetic-gazebo-ros-control python-gst0.10
当然前提是你使用了kinetic系统,如果是noetic,需要事先去ROS wiki查询,发现没有的话再去github下载源码自己编译。我现在编译ecto还卡着所以只好滚到kinetic继续操作。