欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux下正确安装jsoncpp

程序员文章站 2022-07-12 15:48:41
...

要安装jsoncpp,首先要下载好scons,再去安装jsoncpp

scons下载地址:wget http://prdownloads.sourceforge.NET/scons/scons-2.2.0.tar.gz

Jsoncpp 下载地址 http://sourceforge.net/projects/jsoncpp/files/latest/download?_test=goal 

 以上的下载地址未用过,但是下面的命令确实可以实现JsonCPP安装成功(下面命令都是小写,不知道为什么提交后部分变成大写)

安装步骤如下:#tar -zxvf scons-2.1.0.tar.gz #cd scons-2.1.0

                   #python setup.py install

                   #tar -zxvf jsoncpp-src-0.5.0.tar.gz

                   #cd jsoncpp-src-0.5.0

                   #scons platform=linux-gcc

                  //这里操作的动态库文件(.so)

                   #mv libs/linux-gcc-4.4.7/libjson_linux-gcc-4.4.7_libmt.so  /lib

                   #ln /lib/libjson_linux-gcc-4.4.7_libmt.so   /lib/libjson.so

                   #mv include/json/ /usr/include/

                   #ldconfig

                   #./bin/linux-gcc-4.4.7/test_lib_json

                  【注意这里的版本号可能不同】先通过cd libs进入libs目录,再用“ls”命令查看自己的版本号,然后在上述步骤中修改成自己的版本号即可

Testing ValueTest/size: OK

Testing ValueTest/isObject: OK

Testing ValueTest/isArray: OK
Testing ValueTest/isBool: OK
Testing ValueTest/isInt: OK
Testing ValueTest/isUInt: OK
Testing ValueTest/isDouble: OK
Testing ValueTest/isString: OK
Testing ValueTest/isNull: OK
All 9 tests passed

                 上面操作动态库文件的命令行其实也可对静态库进行操作(当前目录jsoncpp-src-0.5.0)

                 #mv libs/linux-gcc-4.4.7/libjson_linux-gcc-4.47_libmt.a  /usr/local/lib

                 #ln  /usr/local/lib/libjson_linux-gcc-4.47_libmt.a   /usr/local/lib/libjson.a

                 如果只对静态库转移的话,那.bin/linux-gcc-4.4.7/test_lib_json会报错

                 linux下正确安装jsoncpp

测试代码:

#include <iostream>   
#include <string>   
#include "json/json.h"   
using namespace std;
int main() {
	Json::Value json_temp;
	json_temp["name"] = Json::Value("sharexu");
	json_temp["age"] = Json::Value(18);
	Json::Value root;
	root["key_string"] = Json::Value("value_string");
	root["key_number"] = Json::Value(12345);
	root["key_boolean"] = Json::Value(false);
	root["key_double"] = Json::Value(12.345);
	root["key_object"] = json_temp;
	root["key_array"].append("array_string");
	root["key_array"].append(1234);

	Json::FastWriter fast_writer;
	std::cout << fast_writer.write(root);

	Json::StyledWriter styled_writer;
	std::cout << styled_writer.write(root);

	string str_test = "{\"id\":1,\"name\":\"pacozhong\"}";
	Json::Reader reader;
	Json::Value value;
	if (!reader.parse(str_test, value))
		return 0;
	string value_name = value["name"].asString();
	cout << value_name << endl;
	cout << value["name"];
	if (!value["id"].isInt()) {
		cout << "id is not int" << endl;
	}
	else {
		int value_id = value["id"].asInt();
		cout << value_id << endl;
	}
	return 0;
}

             linux下正确安装jsoncpp

            敲命令行时要加上-ljson。另在提醒一下,如果实在VS2017中建立linux控制台项目的话,要在项目属性->链接器->输入->库依赖项中加入json,项目才能编译成功。

相关标签: JSON VS2017