项目一
项目结构
.
├── CMakeLists.txt
├── Test
│ ├── consumer.cpp
│ ├── learn.cpp
│ └── producer.cpp
└── src
├── include
│ └── squeue.h
└── squeue.cpp
cmake_minimum_required(VERSION 3.10)
project(YourProjectName)
set(CMAKE_CXX_STANDARD 14)
include_directories(src/include) # 加入 头文件搜索目录
add_library(squeue src/squeue.cpp) # 创建一个库 叫squeue,由squeue.cpp编译成
# 下面定义了三个 可执行文件
add_executable(consumer Test/consumer.cpp)
target_link_libraries(consumer squeue)
add_executable(learn Test/learn.cpp)
target_link_libraries(learn squeue)
add_executable(producer Test/producer.cpp)
target_link_libraries(producer squeue)
批量化版本
cmake_minimum_required(VERSION 3.10)
project(YourProjectName)
set(CMAKE_CXX_STANDARD 14)
include_directories(src/include) # 添加头文件目录
file(GLOB LIB_SOURCES "src/*.cpp") # 定义 文件变量 LIB_SOURCES
add_library(squeue ${LIB_SOURCES}) # 变成一个库
file(GLOB TEST_SOURCES "Test/*.cpp") # 定义 文件变量 TEST_SOURCES
foreach(test_source ${TEST_SOURCES}) #循环
get_filename_component(test_name ${test_source} NAME_WE)
add_executable(${test_name} ${test_source}) # 制作成 可执行文件
target_link_libraries(${test_name} squeue) # 链接 squeue库
endforeach()
项目二
结构
├── CMakeLists.txt
├── include
│ └── squeue.h
├── main.cpp
└── squeue.cpp
cmake
cmake_minimum_required(VERSION 3.10)
project(YourProjectName)
set(CMAKE_CXX_STANDARD 14)
include_directories(include)
file(GLOB SOURCES "*.cpp")
add_executable(YourProjectName ${SOURCES})
cmake引入tomlplusplus的库
要在CMake项目中引入tomlplusplus库,你可以按照以下步骤操作:
首先,你需要将tomlplusplus库添加到你的项目中。你可以使用
git submodule
命令来实现这一点1:git submodule add --depth 1 https://github.com/marzer/tomlplusplus.git tomlplusplus git config -f .gitmodules submodule.tomlplusplus.shallow true
然后,在你的CMakeLists.txt文件中,你需要使用
add_subdirectory
命令来添加tomlplusplus库的目录2:add_subdirectory(tomlplusplus)
最后,你需要使用
target_link_libraries
命令来链接tomlplusplus库3:target_link_libraries(your_project_name PRIVATE tomlplusplus)
请注意,上述代码中的your_project_name
应该替换为你的项目名称。
希望这些信息对你有所帮助!如果你还有其他问题,欢迎随时向我提问。😊
git config -f .gitmodules submodule.tomlplusplus.shallow true
这条命令的含义是设置Git的配置参数。这里,-f .gitmodules
表示要更改的配置文件是.gitmodules
,submodule.tomlplusplus.shallow
是要更改的参数,true
是要设置的值。
在这个上下文中,submodule.tomlplusplus.shallow true
表示将tomlplusplus
子模块的克隆深度(depth)设置为1,也就是只克隆最近的一次提交。这样做可以减少克隆的数据量,加快克隆速度12。
需要注意的是,tomlplusplus
库本身也有一些子模块,但这些子模块只用于测试12。所以,如果你只是想使用tomlplusplus
库,而不需要运行测试,那么使用浅克隆(shallow clone)是可以的。😊