项目文件树
CPP11ThreadLearn
├── CMakeLists.txt------------顶级CMake文件
├── CPP11ThreadLearn----------项目文件夹1
│ ├── CMakeLists.txt
│ ├── CPP11ThreadLearn.cpp
│ ├── CPP11ThreadLearn.h
│ ├── simple.cpp
│ └── simple.h
├── CPP11ThreadPool-----------项目文件夹2
│ ├── CMakeLists.txt
│ ├── main.cpp
│ ├── test.cpp
│ └── test.h
└── Tools---------------------工具文件夹
├── tools.cpp
└── tools.h
需求:我想要在项目1,2中都使用 Tools 下的文件.h .cpp
思路:通过 CMake 配置文件加入头文件和源文件
第一步:定义函数
# 顶级CMake文件中添加函数
# 添加外部源码库(单层文件结构)
function(add_path_to_target target path) # 函数名 编译目标 添加路径
aux_source_directory(${path} var)
target_include_directories(${target} PUBLIC ${path})
target_sources(${target} PRIVATE ${var})
endfunction()
第二步:使用函数
# 在项目 1 or 2 下的 CMakeLists.txt 中使用该函数
# CPP11ThreadPool/CMakeLists.txt 内容
cmake_minimum_required (VERSION 3.8)
# 将源代码添加到此项目的可执行文件。
add_executable (CPP11ThreadPool "main.cpp" "test.h" "test.cpp")
# 参数1 项目目标名 参数2 相对路径
add_path_to_target(CPP11ThreadPool ../Tools)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。