C++ 编译json.cpp 编译报出libjsoncpp.a库没有正确链接错误
环境:Ubuntu jsoncpp
testjson.cpp的代码:
#include <json/json.h>
#include <iostream>
int main() {
// JSON文本字符串
std::string jsonString =
"{\n"
" \"name\" : \"John Smith\", // name\n"
" \"age\" : 30 /* age */\n"
// 设置解析策略
Json::CharReaderBuilder builder;
builder["collectComments"] = true;
// 解析JSON文本字符串
Json::Value root;
std::string errors;
std::istringstream is(jsonString);
if (Json::parseFromStream(builder, is, &root, &errors)) {
std::cout << "name: " << root["name"].asString() << std::endl;
std::cout << "age: " << root["age"].asInt() << std::endl;
} else {
std::cout << "parse error: " << errors << std::endl;
return 0;
}
g++ testjson.cpp -o testjson
/tmp/ccolWzWI.o:在函数‘main’中:
testjson.cpp:(.text+0x61):对‘Json::CharReaderBuilder::CharReaderBuilder()’未定义的引用
testjson.cpp:(.text+0x75):对‘Json::Value::Value(bool)’未定义的引用
testjson.cpp:(.text+0xba):对‘Json::CharReaderBuilder::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)’未定义的引用
testjson.cpp:(.text+0xcf):对‘Json::Value::operator=(Json::Value&&)’未定义的引用
testjson.cpp:(.text+0xfc):对‘Json::Value::~Value()’未定义的引用
testjson.cpp:(.text+0x110):对‘Json::Value::Value(Json::ValueType)’未定义的引用
testjson.cpp:(.text+0x161):对‘Json::parseFromStream(Json::CharReader::Factory const&, std::istream&, Json::Value*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)’未定义的引用
testjson.cpp:(.text+0x195):对‘Json::Value::operator[](char const*)’未定义的引用
testjson.cpp:(.text+0x1aa):对‘Json::Value::asString[abi:cxx11]() const’未定义的引用
testjson.cpp:(.text+0x20c):对‘Json::Value::operator[](char const*)’未定义的引用
testjson.cpp:(.text+0x214):对‘Json::Value::asInt() const’未定义的引用
testjson.cpp:(.text+0x2a4):对‘Json::Value::~Value()’未定义的引用