上一篇文章中,搭建好了虚拟机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库
编译生成了静态和动态库,就可以直接使用了,这里测试下,新建一个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
ok了。