1.主要目的
使用CMake对常用的目录格式下的代码进行编译,涉及内容如下:
1.程序生成自己的库,并链接
2.链接三方库
3.添加Boost库路径
2.目录结构
└── common
├── code
│ ├── librandom
│ │ ├── CustomRandom.cpp
│ │ └── CustomRandom.h
│ └── main.cpp
└── thirdparty
└── printlist
├── libPrintList.a
└── printList.h
3.编写CMakeLists.txt
3.1.编写common文件夹下的CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(common)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CODE_PATH "${PROJECT_SOURCE_DIR}/code")
set(CUSTOMRANDOM_LIB_PATH "${CODE_PATH}/librandom")
set(PRINTLIST_LIB_PATH "${PROJECT_SOURCE_DIR}/thirdparty/printlist")
set(BOOST_PATH "C:/boost/boost_1_80_0")
add_subdirectory("${CUSTOMRANDOM_LIB_PATH}")
add_subdirectory("${CODE_PATH}")
3.2.编写librandom文件夹下的CMakeLists.txt
add_library(CustomRandom CustomRandom.cpp)
3.3.编写code文件夹下的CMakeLists.txt
add_executable(PrintRandom main.cpp)
target_include_directories(PrintRandom PUBLIC
"${CODE_PATH}"
"${CUSTOMRANDOM_LIB_PATH}"
"${PRINTLIST_LIB_PATH}"
"${BOOST_PATH}")
target_link_directories(PrintRandom PUBLIC
"${PRINTLIST_LIB_PATH}")
target_link_libraries(PrintRandom PUBLIC
CustomRandom
PrintList)