windows vscode jsoncpp cmake c++ 构建项目

这篇具有很好参考价值的文章主要介绍了windows vscode jsoncpp cmake c++ 构建项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

接着运行cmake-gui.exe

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

1.制作lib文件夹

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

2. 制作inlude文件夹

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

3.制作src文件夹

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

test.cpp

#include <iostream>
#include "json.h"
#include <fstream>
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<<item.asInt()<<", ";
            }
            else if(item.isString()){
                cout<<item.asString()<<", ";
            }
            else if(item.isBool()){
                cout<<item.asBool()<<", ";
            }
            else if(item.isArray()){
                for(unsigned j=0; j<item.size(); ++j){
                    cout<<item[j].asString()<<", ";
                }
            }
            else if(item.isObject()){
                Value::Members keys = item.getMemberNames();
                for(int k=0; k<keys.size(); ++k) {
                    cout<<keys.at(k)<<":"<<item[keys[k]]<<",";
                }
            }
            cout<<endl;
        }
    }
}
int main() {
    writeJson();
    readJson();
    cout<<"heheda"<<endl;
    Value root;
    return 0;
}

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++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncppwindows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncppwindows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncppwindows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

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

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

windows vscode jsoncpp cmake c++ 构建项目,CMake 笔记,vscode,c++,cmake,jsoncpp

本项目完整代码: 【免费】windowsvscodejsoncppcmakec++构建项目资源-CSDN文库文章来源地址https://www.toymoban.com/news/detail-807168.html

到了这里,关于windows vscode jsoncpp cmake c++ 构建项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vscode + CMake 构建C语言项目

    1. 所需工具 Visual Stduio Code(vscode) CMake 简介: CMake 是一个跨平台的 构建工具 ,用于 自动 生成项目构建文件。它支持多种操作系统和构建系统,并提供简洁的语法和命令来定义项目的构建过程、源代码文件和依赖关系。CMake 可以根据 CMakeLists.txt 文件自动生成适合不同构建

    2024年02月06日
    浏览(37)
  • CMake学习笔记-VSCode使用Cmake编译C++工程

    Win + MinGW + CMake + Git 官方教程1: https://cmake.org/cmake/help/latest/guide/tutorial/A%20Basic%20Starting%20Point.html 官方教程2: https://cmake.org/cmake/help/book/mastering-cmake/cmake/Help/guide/tutorial/index.html 官方练习材料1:https://github.com/Kitware/CMake.git 官方练习材料2:https://github.com/Kitware/CMake/blob/master/Help/guide

    2024年02月11日
    浏览(60)
  • c++项目环境搭建(VMware+linux+ubantu+vscode+cmake)

    想运行一个c++项目,但是环境怎么整呢?b站走起!!! 链接:https://pan.baidu.com/s/1XJbR2F1boQ-CqV8P71UOqw  提取码:swin 八分钟完成VMware和ubuntu系统安装_哔哩哔哩_bilibili 按照视频来就行,别直接在计算机上安装linux系统,呜呜呜~~~找到一个博客,我跟着走之后发现硬盘被格式化了,

    2024年02月05日
    浏览(42)
  • Windows10中使用VS2022和Cmake编译构建C++开源日志库-spdlog

    Java中有很多日志库:java.util.logging、Log4j、Logback、Log4j2、slf4j、common-logging。C++的日志库相对来说就比较少了,比如说glog、log4cpp、spdllog等,目前个人感觉比较好用的C++开源日志库当属于spdlog了,跨平台,支持cmake编译,在维护中。 具体可以参考github上面的示例:https://github

    2023年04月17日
    浏览(86)
  • Windows下基于VSCode搭建C++开发环境(包含整合MinGW64、CMake的详细流程)

    最近想写写C++,装了VisualStudio 2022,折腾半天。对于一个用惯VSCode的人来说,总感觉IDE太笨重。于是自己网上各种查资料,自己琢磨,搭建了一套Windows下基于VSCode和CMake的C++轻量级开发环境。 1. 下载并安装VSCode VSCode下载地址(AzureCDN加速地址) 首先同意安装协议: 下一步,

    2024年02月15日
    浏览(67)
  • LVGL学习笔记|Windows环境下模拟LittlevGL:VSCode+MSYS2+Cmake搭建模拟环境

    最近需要使用LittlevGL(以下简称lvgl)做ARM开发板的GUI,为了方便调试代码在网上搜集了部分在Windows环境下利用VSCode模拟仿真的环境配置步骤,现整理如下。 系统版本:Windows 10 专业版 21H2 直接使用国内镜像下载链接 : https://vscode.cdn.azure.cn/stable/b4c1bd0a9b03c749ea011b06c6d2676c8091

    2024年02月02日
    浏览(46)
  • windows下使用microsoft、intel、gnu不同编译器利用cmake和vscode对c++和fortran程序进行编译和调试

    由于编译器支持特性、编译后程序运行速度、安装使用便捷程度等的不同,我们往往会安装多种不同的编译器。对于c++语言主要的编译器有:microsoft、intel、gnu等,对于fortran语言则更多,包括gnu、intel、pgi等等。不同的编译器在一个系统下,往往需要利用一些手段进行区分,

    2024年02月05日
    浏览(59)
  • cmake构建多项目编译

    最外层的主CMakeLists proj1的CMakeLists proj2的CMakeLists main.cpp proj1/hello.h proj1/hello.cpp proj2/world.h proj2/world.cpp

    2024年02月07日
    浏览(52)
  • 1、vscode+cmake c++环境配置

    关于vscode c++环境的配置,应该有两种一种是vscode+c/c++插件,另一种是vscode+cmake插件,第一种没太多用过,感觉就像python那样,要写相关配置文件,有自己的一套规则;另一种就是cmake的规则,目前我也是用的这种,很方便运行和调试,不需要了解vscode的要求。 就是常规的安装

    2024年02月13日
    浏览(47)
  • Vscode g++ cmake 学习笔记

    1 Linux常用指令   2开发环境搭建    3GCC编译器       4th gdb 调试器 5vscode  6cmake            

    2024年03月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包