windows vscode jsoncpp cmake c++ 构建项目

jsoncpp的编译和使用推荐文章:jsoncpp的编译和使用 | 爱编程的大丙 (subingwen.cn)icon-default.png?t=N7T8https://www.subingwen.cn/cpp/jsoncpp/从这个链接下载jsoncpp-master:https://github.com/open-source-parsers/jsoncpp

可以把这个文件夹名字改成jsoncpp,改短点 (●'◡'●),路径为D:/jsoncpp

windows vscode jsoncpp cmake c++ 构建项目_第1张图片

下载 cmake 工具:我下载的是3.28.1版本的

windows vscode jsoncpp cmake c++ 构建项目_第2张图片

先创建一个文件夹output-project,路径为D:\Work\output-project;

接着运行cmake-gui.exe

windows vscode jsoncpp cmake c++ 构建项目_第3张图片

选好source code路径和build the binaries路径,点击configure,由于我的电脑安装的是visual stdio 2022, 所以我选择vs2022的,最后点击Generate

windows vscode jsoncpp cmake c++ 构建项目_第4张图片

1.制作lib文件夹

(1)查看生成的文件,在output-project文件夹中lib中的Debug中有jsoncpp.lib文件

windows vscode jsoncpp cmake c++ 构建项目_第5张图片

(2)在output-project文件夹中bin中的Debug中有jsoncpp.dll文件

windows vscode jsoncpp cmake c++ 构建项目_第6张图片

(3)我们可以在桌面先创建一个文件夹叫lib,用来存放拷贝出来的jsoncpp.lib文件和jsoncpp.dll文件 

windows vscode jsoncpp cmake c++ 构建项目_第7张图片

windows vscode jsoncpp cmake c++ 构建项目_第8张图片

2. 制作inlude文件夹

(1)在桌面先创建一个文件夹叫include文件夹,我们在D:/jsoncpp/include/son中的这些文件拷贝到include中

windows vscode jsoncpp cmake c++ 构建项目_第9张图片

windows vscode jsoncpp cmake c++ 构建项目_第10张图片

3.制作src文件夹

(1)在桌面先创建一个文件夹叫src文件夹,我们在D:/jsoncpp/src/lib_json中的这些文件拷贝到src中

windows vscode jsoncpp cmake c++ 构建项目_第11张图片

为了后续更好的管理jsoncpp的文件和其他库,我们可以在src中创建一个json文件夹,将*.cpp的文件都剪切进去。至此,我们就完成了这个项目的基本结构

windows vscode jsoncpp cmake c++ 构建项目_第12张图片

PS D:\Work\mysqlConnPool> tree
卷 Data 的文件夹 PATH 列表
卷序列号为 02DE-5B5B
D:.
├─.vscode
├─include
│  └─json
├─lib
└─src
    └─json
PS D:\Work\mysqlConnPool> 

test.cpp

#include 
#include "json.h"
#include 
using namespace std;
using namespace Json;

void writeJson() {
    Value root;
    root.append("luffy");
    root.append(19);
    root.append(170);
    root.append(false);

    Value subArray;
    subArray.append("ace");
    subArray.append("sabo");
    root.append(subArray);

    Value subObj;
    subObj["sex"] = "man";
    subObj["girlfriend"] = "Hancock";
    root.append(subObj);
#if 1
    string json = root.toStyledString();
#else
    FastWriter w;
    string json = w.write(root);
#endif
    // write -> ofstream
    // read -> ifstream
    ofstream ofs("./test.json");
    ofs << json;
    ofs.close();
    return ;
}

void readJson() {
    ifstream ifs("test.json");
    Reader rd;
    Value root;
    rd.parse(ifs,root);

    if(root.isArray()){
        for(unsigned i = 0; i < root.size(); ++i){
            Value item = root[i];
            if(item.isInt()) {
                cout<

CMakeLists.txt

cmake_minimum_required(VERSION 3.28.1)
project(test)

# 添加头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include/json)
# 源文件
aux_source_directory(${PROJECT_SOURCE_DIR}/src/json SRC_LIST)

# 添加库文件路径
link_directories(${PROJECT_SOURCE_DIR}/lib)
# 添加可执行文件
add_executable(app test.cpp ${SRC_LIST})
target_link_libraries(app jsoncpp)

# 指定输出的路径
set(HOME ${PROJECT_SOURCE_DIR}) # 定义一个变量用于存储一个绝对路径
set(EXECUTABLE_OUTPUT_PATH ${HOME}/bin) # 将拼接好的路径值设置给 EXECUTABLE_OUTPUT_PATH 变量

然后我们把项目中的src文件夹中的json文件夹中的cpp文件的包含头文件改一下,改成如下格式: 

windows vscode jsoncpp cmake c++ 构建项目_第13张图片windows vscode jsoncpp cmake c++ 构建项目_第14张图片windows vscode jsoncpp cmake c++ 构建项目_第15张图片windows vscode jsoncpp cmake c++ 构建项目_第16张图片

PS D:\Work\mysqlConnPool> mkdir build


    目录: D:\Work\mysqlConnPool


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/1/19     17:22                build


PS D:\Work\mysqlConnPool> cd build
PS D:\Work\mysqlConnPool\build> cmake ..
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: D:/Work/mysqlConnPool/build
PS D:\Work\mysqlConnPool\build> make
[ 20%] Building CXX object CMakeFiles/app.dir/test.cpp.obj
[ 40%] Building CXX object CMakeFiles/app.dir/src/json/json_reader.cpp.obj
[ 60%] Building CXX object CMakeFiles/app.dir/src/json/json_value.cpp.obj
[ 80%] Building CXX object CMakeFiles/app.dir/src/json/json_writer.cpp.obj
[100%] Linking CXX executable D:\Work\mysqlConnPool\bin\app.exe
[100%] Built target app
PS D:\Work\mysqlConnPool\build> cd ../bin
PS D:\Work\mysqlConnPool\bin> .\app.exe
luffy, 
19,
170,
0,
ace, sabo,
girlfriend:"Hancock",sex:"man",
heheda
PS D:\Work\mysqlConnPool\bin>

windows vscode jsoncpp cmake c++ 构建项目_第17张图片

 我们可以在该项目的bin目录下看到生成一个test.json文件

[
	"luffy",
	19,
	170,
	false,
	[
		"ace",
		"sabo"
	],
	{
		"girlfriend" : "Hancock",
		"sex" : "man"
	}
]

windows vscode jsoncpp cmake c++ 构建项目_第18张图片

本项目完整代码: 【免费】windowsvscodejsoncppcmakec++构建项目资源-CSDN文库

你可能感兴趣的:(CMake,笔记,vscode,c++,cmake,jsoncpp)