参数:-lalibabacloud-idst-common 和-lalibabacloud-idst-speech使用的库

编译:
运行环境最低要求:CMake 3.0及以上,Glibc 2.5及以上,GCC4.8.5及以上。

./scripts/build_linux.sh 默认增量编译,生成Debug版本
./scripts/build_linux.sh all debug 全量编译,生成Debug版本


使用说明:
https://blog.csdn.net/qq_36251561/article/details/121498989

编译命令

说明:
https://blog.csdn.net/iyaosan/article/details/79115010

github代码
https://github.com/cdevelop/FreeSWITCH-ASR.git

#编译命令
g++ -shared -fPIC -o mod_asr.so mod_asr.cpp -pthread -I ./nlsSpeech-release/include -I /usr/local/freeswitch/include -L./nlsSpeech-release/lib/linux -L /usr/local/freeswitch/lib -ldl -lopus -lrealTimeUnity -lfreeswitch

#1.6.20 /usr/local/src/freeswitch/
g++ -shared -fPIC -o mod_asr.so mod_asr.cpp -pthread -I /home/nlsSpeech-release/include -I /usr/local/src/freeswitch/src/include  -I/usr/local/src/freeswitch/libs/libteletone/src/ -L/home/nlsSpeech-release/lib/linux -L /usr/local/src/freeswitch/lib -ldl -lopus -lrealTimeUnity -lfreeswitch
#报错找不到 -lfreeswitch 可以忽略该参数

载入mod_asr

reload mod_asr
module_exists mod_asr #判断模块是否存在
测试订阅事件
/event custom asr

错误处理

* error: ‘NlsClient::NlsClient()’ is private
把对应类里的NlsClient() 从private 复制到public的标签下

错误/usr/bin/ld: cannot find -lfreeswitch

主要的原因是库文件并没有导入的ld检索目录中

ld命令是GNU的连接器,将目标文件连接为可执行程序。 语法 ld(选项)(参数) 选项 -o:指定输出文件名; -e:指定程序的入口符号。 参数 目标文件:指定需要连接的目标文件。