cmake中的add_subdirectory()函数, 请举例说明怎么使用
时间: 2024-01-06 17:20:40 浏览: 72
当我们需要在CMake项目中添加子目录时,可以使用add_subdirectory()函数。下面是一个简单的例子,演示了如何使用add_subdirectory()函数来添加一个子目录。
假设我们的项目结构如下:
```
project/
├── CMakeLists.txt
├── main.cpp
└── subdirectory/
├── CMakeLists.txt
└── sub.cpp
```
其中,project目录是我们的顶级目录,包含了顶层CMakeLists.txt文件和main.cpp文件。subdirectory目录是我们要添加的子目录,包含了sub.cpp文件和子目录级别的CMakeLists.txt文件。
现在,我们要在顶层CMakeLists.txt文件中添加subdirectory子目录。我们可以在顶层CMakeLists.txt文件中添加如下代码:
```
cmake_minimum_required(VERSION 3.5)
project(MyProject)
add_subdirectory(subdirectory)
add_executable(MyProject main.cpp)
target_link_libraries(MyProject sub)
```
在上面的代码中,我们首先指定了CMake的最低版本,然后定义了项目名称为MyProject。接着,我们调用了add_subdirectory()函数,指定了子目录为subdirectory。注意,这里的subdirectory是相对于顶层目录的路径。最后,我们定义了一个可执行文件MyProject,并链接了子目录中的库sub。
接着,我们可以在子目录中的CMakeLists.txt文件中定义一个库sub。我们可以在子目录的CMakeLists.txt文件中添加如下代码:
```
add_library(sub STATIC sub.cpp)
```
在上面的代码中,我们定义了一个名为sub的静态库,其中包含了一个源文件sub.cpp。
通过这样的方式,我们就成功地将一个子目录添加到了CMake项目中,并且在顶层目录中可以使用子目录中定义的库。