我正在尝试使用 libjson 库从服务器解析 json 数据。当我使用 g++ 编译器时它工作正常。现在我正在使用 arm-none-linux-gnueabi-g++ 编译器。
它不会产生任何编译错误,但是当程序运行时,当程序到达构建函数 json_parse(json) 时会产生分段错误。这是代码
curl = curl_easy_init();
if(curl) {
stringstream bb;
bb<<"softland3.chillarcards.com/track/campustest/payment_type.php" ;
curl_easy_setopt(curl, CURLOPT_URL,strdup(bb.str().c_str()));
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_string);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
res = curl_easy_perform(curl);
cout << response <<endl;
vector <clas> vv;
json_char * json;
JSONNODE_ITERATOR i;
std::string node_name;
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
JSONNODE *n = json_new(JSON_NODE);
if(json_is_valid(response.c_str()))
{
json = json_strip_white_space(response.c_str());
n = json_parse(json);
ParseJSON(n,vv);
// cout<<"size of vector " <<vv.size()<<endl;
// for (std::vector<clas>::iterator i = vv.begin(); i != vv.end(); i++)
// {
// cout<<i->First<<endl;
// cout<<i->Second<<endl;
// }
}
else{
cout << "ERROR IN Validation" <<endl;
}
// json_free(json);
json_free_all();
curl_easy_cleanup(curl);
}
curl_global_cleanup();
}
谢谢。