add_subdirectory各个参数的意义和使用实例
时间: 2024-03-21 13:39:52 浏览: 100
cmake实例(多层级目录)
add_subdirectory是CMake中的一个命令,用于向CMake项目添加一个子目录。它的语法如下:
```
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
```
其中,source_dir是子目录的路径,binary_dir是子目录的构建目录(可选),EXCLUDE_FROM_ALL表示是否将该子目录的构建目标排除在make all等构建目标之外(可选)。
使用实例:
假设我们的项目结构如下:
```
project/
CMakeLists.txt
main.cpp
/lib
CMakeLists.txt
lib.cpp
lib.h
```
我们可以在project/CMakeLists.txt中使用add_subdirectory命令来引用lib子目录,并将其作为一个库来编译:
```
# project/CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(MyProject)
add_subdirectory(lib)
add_executable(MyProject main.cpp)
target_link_libraries(MyProject MyLibrary)
```
在lib/CMakeLists.txt中,我们定义一个库MyLibrary,然后使用add_subdirectory将其添加到项目中:
```
# lib/CMakeLists.txt
add_library(MyLibrary STATIC lib.cpp)
target_include_directories(MyLibrary PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
```
这样,当我们运行CMake时,它将自动编译MyLibrary并将其链接到MyProject中。
阅读全文