windows下MinGw64环境将JsonCpp编译为动态/静态链接库(不使用cmake)

windows下MinGw64环境将JsonCpp编译为动态/静态链接库(不使用cmake)

  • 本篇博客将介绍如何在 windows 下,在不使用cmake的情况下,纯使用 MinGw64 的 g++ 编译 JsonCpp 为动态链接库或静态链接库的方法

1. JsonCpp源码下载

2.整理编译文件夹

在下载的jsoncpp源码的文件夹中,提取出 源文件 和 头文件

  • 1> jsoncpp 源文件路径 :
    在这里插入图片描述

  • 2> jsoncpp 头文件路径 :
    jsoncpp的头文件有两个地方存在,一个是上面的源文件中有一个头文件json_tool.h
    其他的头文件在:
    在这里插入图片描述
    将整个存放头文件的json目录拷贝下来,并将源文件目录下的json_tool.h放到 json 目录下

  • 3> 规整文件
    创建一个目录,按下图结构放置 jsoncpp 的头文件和源文件:
    在这里插入图片描述

  • 4> 修改文件,非常重要

       将 json_tool.h 文件中的 #include <json/json_features.h> 修改为 #include "json_features.h"

如下图所示:

    在全部源文件中 include 的 json 目录下的头文件的地方,把 <> 换成 "" ,如下图所示:

 注意,这里所有的源文件都要像上图一样做替换

  • 5> 创建一个makefile 文件,用于编译动态或静态链接库,makefile 内容如下:

CCC = g++
AR = ar

STATIC_LIB = libjsoncpp.a
SHARE_LIB = libjsoncpp.dll


SOURCE = json_reader.cpp json_value.cpp json_writer.cpp
OBJS = json_reader.o json_value.o json_writer.o

ARFLAGS = -rc
LDFLAGS = -shared -fpic

# #静态库
# $(STATIC_LIB) : $(OBJS)
# 		$(AR) $(ARFLAGS) -o $(STATIC_LIB) $(OBJS) 

#动态库
$(SHARE_LIB) : $(OBJS)
		$(CCC) $(LDFLAGS) $(SOURCE) -o $(SHARE_LIB)
	 

.PHONY:clean
clean:
	del $(OBJS)
	del $(STATIC_LIB)
	del $(SHARE_LIB)

3.编译库

  • 如果想编译动态链接库,就像上方Makefile内容一样,将编译静态库的部分注释即可
  • 如果想编译静态链接库,就将编译动态库的部分注释掉即可
  • 选好编译动态或静态链接库之后,直接在终端 make 一下就好
  • 编译完成后的库如下图所示:
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值