语音识别Linux sdk添加jsoncpp出错
落雁西南 发布于2018-09 浏览:1565 回复:4
0
收藏

demo中百度语音识别返回的json数据是直接打印出来的,想要用jsoncpp将内容提取出来.在编译时出了如下错误

对‘Json::Reader::parse(std::string const&, Json::Value&, bool)’未定义的引用
对‘Json::Value::asString() const’未定义的引用

尝试直接在//sample/asr/src/main.cpp中添加如下测试代码
#include "jsoncpp/json/json.h"
......
int main(int argc, char **argv) {
Json::Reader reader;
Json::Value root;
std::string s_json = "{\"a\":\"aa\",\"b\":\"bb\"}";
if(reader.parse(s_json,root))
{
std::cout< }
......

编译时在最后添加-ljsoncpp

g++ -o src/main ./src/main.cpp -I../../include -I../../include/ASR -Wall -O0 -fPIC -g -D__LINUX__ -Wno-unknown-pragmas -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11 ../../lib/libBDSpeechSDK.a ../../extern/lib/libcurl.a ../../extern/lib/libiconv.a ../../extern/lib/libz.a ../../extern/lib/libssl.a ../../extern/lib/libcrypto.a ../../extern/lib/libuuid.a -lrt -ldl -lpthread -ljsoncpp

编译时仍然报错

/tmp/ccEwOm1M.o:在函数‘main’中:
/media/dyan/project/projects/linux-cpp-sdk.3.0.5-09a7b48a3a-20180502/sample/asr/./src/main.cpp:403:对‘Json::Reader::parse(std::string const&, Json::Value&, bool)’未定义的引用
/media/dyan/project/projects/linux-cpp-sdk.3.0.5-09a7b48a3a-20180502/sample/asr/./src/main.cpp:405:对‘Json::Value::asString() const’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:29: recipe for target 'src/main' failed
make: *** [src/main] Error 1

之后尝试了动态库libjsoncpp.a也是同样的错误

请问是哪里有冲突吗?

收藏
点赞
0
个赞
共4条回复 最后由用户已被禁言回复于2022-04
#5fujiayi1984回复于2018-09

你怀疑我们的sdk和jsoncpp不兼容是吧。

看下sample里的第二个目录,里面用到jsoncpp对结果解析的。

0
#4落雁西南回复于2018-09

搞了半天没搞定,换了cJson库就可以

0
#3落雁西南回复于2018-09
#2 fujiayi1984回复
1.先不要改代码,直接测试demo 2.自己写个jsoncpp 的helloworld,跑通 3.结合两者,代码慢慢加
展开

前2步都过了,就在第3步编译过不了

0
#2fujiayi1984回复于2018-09

1.先不要改代码,直接测试demo

2.自己写个jsoncpp 的helloworld,跑通

3.结合两者,代码慢慢加

0
TOP
切换版块