Administrator
发布于 2023-12-03 / 10 阅读 / 0 评论 / 0 点赞

Cmake 其一

项目一

项目结构

.
├── 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库,你可以按照以下步骤操作:

  1. 首先,你需要将tomlplusplus库添加到你的项目中。你可以使用git submodule命令来实现这一点1

    git submodule add --depth 1 https://github.com/marzer/tomlplusplus.git tomlplusplus
    git config -f .gitmodules submodule.tomlplusplus.shallow true
    
  2. 然后,在你的CMakeLists.txt文件中,你需要使用add_subdirectory命令来添加tomlplusplus库的目录2

    add_subdirectory(tomlplusplus)
    
  3. 最后,你需要使用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表示要更改的配置文件是.gitmodulessubmodule.tomlplusplus.shallow是要更改的参数,true是要设置的值。

在这个上下文中,submodule.tomlplusplus.shallow true表示将tomlplusplus子模块的克隆深度(depth)设置为1,也就是只克隆最近的一次提交。这样做可以减少克隆的数据量,加快克隆速度12

需要注意的是,tomlplusplus库本身也有一些子模块,但这些子模块只用于测试12。所以,如果你只是想使用tomlplusplus库,而不需要运行测试,那么使用浅克隆(shallow clone)是可以的。😊

CMakeDebug Clangd lldb vscode

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境-CSDN博客


评论