Centos7下新版本Jsoncpp编译安装

Centos7下新版本Jsoncpp编译安装

上一篇文章中,搭建好了虚拟机centos服务器,并且通过ssh连接,这里我们编译使用一下Jsoncpp这个广泛使用的json开源库。

编译

Jsoncpp直接下载源码编译,网址https://github.com/open-source-parsers/jsoncpp/
新建一个项目文件夹jsoncpp,然后git clone https://github.com/open-source-parsers/jsoncpp/
如果下载超时,试试git clone git://github.com/open-source-parsers/jsoncpp/
下载完以后,在项目目录同级新建一个文件夹build,用来编译工程,目录结构如下
jsoncpp
—jsoncpp(项目目录)
—build
然后cd到build目录下,执行,

cmake ../jsoncpp

会在build目录下生成编译文件,然后直接make即可,

make

这里需要注意,较新版本的jsoncpp需要C++11支持,所以gcc的版本需要比较新,否则会报一些错误。如果本地装了多个gcc的版本,可以手动指定一下项目目录下CMakeLists.txt文件中的编译器,

# ---------------------------------------------------------------------------
# use ccache if found, has to be done before project()
# ---------------------------------------------------------------------------
#find_program(CCACHE_EXECUTABLE "ccache" HINTS /usr/local/bin /opt/local/bin)
#if(CCACHE_EXECUTABLE)
    #message(STATUS "use ccache")
    #set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_EXECUTABLE}" CACHE PATH "ccache" FORCE)
    #set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_EXECUTABLE}" CACHE PATH "ccache" FORCE)
#endif()

SET(CMAKE_C_COMPILER "/usr/bin/gcc")
SET(CMAKE_CXX_COMPILER "/usr/bin/g++")

把上面的注释掉,然后set指定一下编译器路径。
编译完成后会在编译目录build下的lib中生成.a和.so库

使用Jsoncpp

编译生成了静态和动态库,就可以直接使用了,这里测试下,新建一个cpp文件,包含一下头文件。Jsoncpp的头文件在clone下来的目录中jsoncpp\include\json,

#include<iostream>
#include<string>
#include<vector>
#include "json/json.h"
using namespace std;
int main()
{
    Json::Value cfg = Json::nullValue;
    cfg["name"] = "pengzheng";
    cfg["age"] = "24";
    cout<<cfg.toStyledString().c_str();
}

写一个简单的makefile测试下,

OBJ = main
OBJ_SOURCE = main.cpp

CC = g++
RM = rm -f
LIBS = /home/pengzheng/program/test/libjsoncpp.a

$(OBJ):$(OBJ_SOURCE)
	$(CC) -o $@  $(OBJ_SOURCE) $(LIBS)

clean:
	$(RM) *.o $(OBJ)

然后,make一下,生成main文件,执行一下./main
Centos7下新版本Jsoncpp编译安装
ok了。

上一篇:CentOS 7 安装配置 VNC 详解


下一篇:Pocscan搭建详解