jsoncpp源码Linux环境编译

Jsoncpp 是一个用来处理 Json文本的开源C++库。源码资源的百度网盘链接:https://pan.baidu.com/s/1v6QVf0TNMa6vF-71YubtJQ 提取码:bcu9

windows版本的库编译就不用演示了,将源码文件解压缩之后makefiles文件夹下就有直接可以用VS打开的工程文件,直接双击打开编译完就可以用。重点我们编译一下Linux版本的库,将jsoncpp源码编译成动态库,项目用的时候直接链接动态库就行。

生成libjsoncpp.so动态库

1、将下载的源码库解压后拷贝src和include文件夹至Linux环境编译。如下图:

2、在src文件夹的lib_json目录下编写Makefile文件,格式如下:

# Auth: lijd
# Date: 2021/02/24

CC       := g++
TARGET   := libjsoncpp.so
INCLUDES := ../../include
FLAGES   := $(addprefix -I, $(INCLUDES))

SRCS  	 := $(wildcard *.cpp)

$(TARGET): $(SRCS)
	$(CC) -shared -fPIC -o $@ $^ $(FLAGES)
	@echo "==================================== Build OK!!! ===================================="

.PHONY: clean
clean:
	@rm -rf $(TARGET)

3、在lib_json目录下执行make生产动态库文件,如下图:

测试验证 libjsoncpp.so动态库

1、用源码中自带的"src/test_lib_json"目录下的代码测试,编写类似于上面的Makefile并执行make生产可执行程序并运行测试。Makefile文件及运行流程如下图:

# Auth: lijd
# Date: 2021/02/24

CC       := g++
TARGET   := json_lijd
INCLUDES := ../../include
LIBS     := jsoncpp
LIBDIRS	 := ../lib_json

FLAGES   := $(addprefix -I, $(INCLUDES)) $(addprefix -L, $(LIBDIRS)) $(addprefix -l, $(LIBS))

SRCS  	 := $(wildcard *.cpp)

$(TARGET): $(SRCS)
	$(CC) -o $@ $^ $(FLAGES)
	@echo "==================================== Build OK!!! ===================================="

.PHONY: clean
clean:
	@rm -rf $(TARGET)

2、自己写的测试代码main.cpp及Makefile进行测试。将main.cpp及Makefile放在lijd_test文件夹,并将该文件夹放在src目录下。代码及运行流程如下图:

// 文件main.cpp

#include <iostream>
#include <string>
#include "json/json.h"
using namespace std;

int main()
{

	string test_txt = "{\"CtrType\":2,\"CtrParam\":0,\"CheckCodeLen\":32,\"CheckCode\":\"3939464638453636354246383743313243384530373535354643383930414436\"}";

	Json::Reader reader;
	Json::Value value;

	if (reader.parse(test_txt,value))
	{
		// encoding
		cout << value["CtrType"].asInt() << endl;
		cout << value["CtrParam"].asInt() << endl;
		cout << value["CheckCodeLen"].asInt() << endl;
		cout << value["CheckCode"].asString() << endl;
	}

	return 0;
}
# Auth: lijd
# Date: 2021/2/24

CC       := g++
TARGET   := lijd_test
INCLUDES := ../../include
LIBS     := jsoncpp
LIBDIRS	 := ../lib_json

FLAGES   := $(addprefix -I, $(INCLUDES)) $(addprefix -L, $(LIBDIRS)) $(addprefix -l, $(LIBS))

SRCS  	 := $(wildcard *.cpp)

$(TARGET): $(SRCS)
	$(CC) -o $@ $^ $(FLAGES)
	@echo "==================================== Build OK!!! ===================================="

.PHONY: clean
clean:
	@rm -rf $(TARGET)

程序运行结果如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值