ubuntu 下使用 jsoncpp库

做项目的时候需要用c++解析json文件, 之前使用的是 libjson 库, 但当g++ 开启 -std=c++11 选项时, 该库的很多功能不能用, 而且还有一些其他的问题, 不推荐使用. 后来采用的是 jsoncpp 库, 可以在ubuntu下用下面的命令安装该库:

[plain] view plain copy

  1. sudo apt-get libjsoncpp-dev libjsoncpp0

库的头文件安装在/usr/include/jsoncpp中, 库API文档默认在/usr/share/doc/libjsoncpp-dev/jsoncpp-api-html/目录下 . jsoncpp 的github主页上也给出了生成库文档的方法. 使用该库的方法很简单, 在你的程序中加入

  1. #include <jsoncpp/json/json.h>

即可.

具体用法参考API文档, 非常简单.

 

、、、、、、、、、、、、、、、、、、、、、

方法二:

重点内容
一.准备:
1.安装 scons
scons是用Python进行编译的,而Linux大版本都带有Python 所以不用安装,只需安装scons即可。在安装scons是有两种方法:
(1)在终端下命令行安装 sudo apt-get install scons
(2)去网站下载源码包编译安装;(个人建议去网站下载源码包自己编译,这样文件路径比较清楚,命令行的安装路径都是系统默认路径,不便查找)http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz
进入解压目录执行如下命令:
Python setup.py install
然后设置环境变量 export MYSCONS=解压路径

export SCONS_LIB_DIR=$MYSCONS/engine
2.安装 jsoncpp
先去官网下载jsoncpp的源码包
http://sourceforge.net/projects/jsoncpp/files/
接下来一次执行命令:
tar -zxf jsoncpp-src-0.5.0.tar.gz
cd jsoncpp-src-0.5.0
scons platform=linux-gcc
mv libs/linux-gcc-5.4.0/libjson_linux-gcc-5.4.0_libmt.so /lib
mv include/json/ /usr/include

sudo mv libjson_linux-gcc-5.4.0_libmt.a /usr/local/lib/json_5.4.0.a

最后两步的执行时不一样的,看你想把文件方在哪个目录,我是放在/usr/lib 下的,头文件放在/usr/include下;

1、下载工具

JsonCpp

http://sourceforge.net/projects/jsoncpp/files/

比如下载的 jsoncpp-src-0.5.0.tar.gz

$ tar -zxvf jsoncpp-src-0.5.0 -C jsoncpp

说明:

① 安装JsonCpp需要下载JsonCpp和Scon还需要机器上有python

② scons又是一个牛叉的工具,功能和GNU make一样,又比make简单多了。scons是python工具,需要先安装好python。

 

2、安装

(1) 安装 scons

   $ sudo apt-get install scons

(2) 切换到 jsoncpp 目录

   $ python /usr/bin/scons platform=linux-gcc

(3) 生成静态和动态库文件

    在jsoncpp/libs/linux-gcc-4.7目录下

          libjson_linux-gcc-4.7_libmt.a

          libjson_linux-gcc-4.7_libmt.so

    $ sudo mkdir /usr/local/lib

(4) 把两个库文件拷贝到/usr/local/lib目录下

    $ sudo cp libjson_linux-gcc-4.7_libmt.* /usr/local/lib

(5) 将静态库重命名为libjsoncpp.a libjsoncpp.so (mv 命令)

 (6)   切换到 jsoncpp/include/json 目录

         $ sudo mkdir /usr/local/include/jsoncpp

         $ sudo cp * /usr/local/include/jsoncpp

3、使用

(1)包含头文件

#include <jsoncpp/json.h>

(2) 编译

加链接选项    -ljsoncpp

 

在linux下运行程序时,发现了error while loading shared libraries这种错误,解决:

./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory
出现这类错误表示,系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。
一般而言,有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。
所以,在
sudo gedit /etc/ld.so.conf
中加入/usr/local/lib这一行,保存之后,
再运行:sudo /sbin/ldconfig –v

更新一下配置即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注