cmake使用子目录extern 主目录的函数
时间: 2024-05-24 11:08:40 浏览: 165
CMake添加引用多个子目录多个CMakeLists同时编译
5星 · 资源好评率100%
在CMake中,使用子目录(subdirectory)可以将一个项目拆分为多个部分,这样更易于管理和维护。如果您的项目依赖于其他项目或库,则可以使用CMake的extern子目录功能来引入这些依赖项。
使用extern子目录的步骤如下:
1. 在主目录中,使用add_subdirectory()函数将子目录添加到CMakeLists.txt文件中。
2. 在子目录中,创建一个CMakeLists.txt文件,并编写该子目录的构建规则。
3. 在子目录的CMakeLists.txt文件中,使用add_library()或add_executable()函数来定义库或可执行文件。
4. 在主目录的CMakeLists.txt文件中,使用target_link_libraries()函数将子目录中的库链接到主目标中。
下面是一个使用extern子目录的示例:
```
# 主目录中的CMakeLists.txt文件
cmake_minimum_required(VERSION 3.10)
project(MyProject)
# 添加子目录
add_subdirectory(extern)
# 定义可执行文件
add_executable(MyApp main.cpp)
# 将extern库链接到主目标中
target_link_libraries(MyApp extern)
```
```
# extern子目录中的CMakeLists.txt文件
# 定义库
add_library(extern SHARED extern.cpp)
# 将头文件添加到库中
target_include_directories(extern PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
```
其中,add_library()函数用于定义库,target_include_directories()函数用于将头文件添加到库中。在主目录中,target_link_libraries()函数用于将库链接到主目标中。
阅读全文