1、目录结构如下
2、外层CMakeLists.txt
# 声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 3.16.3)
set(CMAKE_CXX_STANDARD 11)
# 声明一个 cmake 工程
project(testcjson)
# 添加include目录存放.h文件
include_directories("jsoncpp/include")
# 添加库( 库名(自己设置) 库的实现文件及路径 )
#add_library(jsoncpp jsoncpp/)
add_subdirectory(jsoncpp)
# 添加一个可执行程序,语法:add_executable( 程序名(自己设置,最后用于执行./testcjson) 源代码文件及路径 )
add_executable(testcjson testcjson.cpp)
# 将库文件链接到可执行程序上(名字都是上面设置的,统一对应即可)
target_link_libraries(testcjson jsoncpp )
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
3、内层CMakeLists.txt
project(jsoncpp)
aux_source_directory(. DIR_SRCS)
add_library(jsoncpp STATIC ${DIR_SRCS})
4、在外层执行
cmake .
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/f/PersonStudy/CCStudy/testjson
make
[ 66%] Built target jsoncpp
[ 83%] Building CXX object CMakeFiles/testcjson.dir/testcjson.cpp.o
[100%] Linking CXX executable testcjson
[100%] Built target testcjson