vscode cmake 配置项目添加并使用jsoncpp
前言
因为初学c++,在将jsoncpp添加到vscode的项目中时遇到了一些困难,于是记录并分享。
1、前期准备
GitHub下载源码 https://github.com/open-source-parsers/jsoncpp
我使用的版本是0.5.0,高版本好像不能只改头文件添加cppjson
旧版本链接 https://pan.baidu.com/s/1Yg9Usdc3T-CYhyr9GiePCw?pwd=ng6x
vscode 安装cmake插件
2、创建项目
创建一个文件夹并使用vscode打开
在根目录下创建文件main.cpp并输入下面这段代码作为测试
#include "stdio.h"
#include "json/json.h"
#include <string.h>
#include <iostream>
int main()
{
std::cout << "programm start...." << std::endl;
Json::Value tmp;
tmp["key1"] = Json::Value ("value1");
Json::FastWriter file;
std::cout << file.write(tmp) << std::endl;
}
ctrl+shift+p,输入cmake,找到CMake:Quick Start进行配置
然后依次输入项目名称,选择C++,可执行文件,成功生成CMakeLists.txt。
3、解压并添加源码到项目目录
将jsoncpp解压后的文件结构,只有文件夹
F:.
├───devtools
├───doc
├───include
│ └───json
├───makefiles
│ └───vs71
├───scons-tools
├───src
│ ├───jsontestrunner
│ ├───lib_json
│ └───test_lib_json
└───test
├───data
└───jsonchecker
在项目根目录下创建文件夹存放jsoncpp相关文件。
将 include/json 和 src/lib_json 文件夹下的所有文件添加到json文件夹下
删除CMakeLists.txt
F:.
autolink.h
config.h
features.h
forwards.h
json.h
json_batchallocator.h
json_internalarray.inl
json_internalmap.inl
json_reader.cpp
json_value.cpp
json_valueiterator.inl
json_writer.cpp
reader.h
sconscript
value.h
writer.h
4、修改CMakeLists.txt
添加cppjson源码和头文件到工程并链接
cmake_minimum_required(VERSION 3.0.0)
project(server VERSION 0.1.0 LANGUAGES C CXX)
include(CTest)
enable_testing()
file(GLOB_RECURSE cpp_srcs json/*.cpp)
add_library(my_library SHARED ${cpp_srcs})
add_executable(server main.cpp)
target_link_libraries(server my_library)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
5、修改源码引用头文件
根据报错进行修改
#include <json/value.h> -> #include "value.h"
#include <json/writer.h> -> #include "writer.h"
#include <json/reader.h> -> #include "reader.h"
6、构建项目
成功启动并输出json。