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也是同样的错误
请问是哪里有冲突吗?
你怀疑我们的sdk和jsoncpp不兼容是吧。
看下sample里的第二个目录,里面用到jsoncpp对结果解析的。
搞了半天没搞定,换了cJson库就可以
前2步都过了,就在第3步编译过不了
1.先不要改代码,直接测试demo
2.自己写个jsoncpp 的helloworld,跑通
3.结合两者,代码慢慢加