txt中的add_subdirectory如何使用

   2024-09-30 9490
核心提示:add_subdirectory() 是 CMake 构建系统中的一个命令,用于将子目录添加到构建过程中以下是 add_subdirectory() 函数的基本用法:

add_subdirectory() 是 CMake 构建系统中的一个命令,用于将子目录添加到构建过程中

以下是 add_subdirectory() 函数的基本用法:

add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
source_dir:子目录的路径,相对于当前 CMakeLists.txt 文件的位置。binary_dir(可选):指定子目录的构建输出目录。如果省略此参数,则将使用默认的构建目录。EXCLUDE_FROM_ALL(可选):如果指定此选项,则子目录中的目标将不会自动包含在主项目的默认构建过程中。你需要显式地指定依赖关系。

以下是一个简单的示例,说明如何使用 add_subdirectory()

假设你有以下目录结构:

my_project/    CMakeLists.txt    main.cpp    lib1/        CMakeLists.txt        lib1.cpp        lib1.h    lib2/        CMakeLists.txt        lib2.cpp        lib2.h

在这个例子中,my_project 包含两个子目录 lib1lib2,每个子目录都有自己的 CMakeLists.txt 文件。

顶层 CMakeLists.txt 文件内容如下:

cmake_minimum_required(VERSION 3.0)project(my_project)add_subdirectory(lib1)add_subdirectory(lib2)add_executable(my_project main.cpp)target_link_libraries(my_project PRIVATE lib1 lib2)

在这个例子中,我们首先调用 add_subdirectory() 函数,将 lib1lib2 子目录添加到构建过程中。然后,我们创建一个名为 my_project 的可执行文件,并将其链接到 lib1lib2 库。

lib1lib2CMakeLists.txt 文件分别如下:

lib1/CMakeLists.txt:

add_library(lib1 STATIC lib1.cpp)

lib2/CMakeLists.txt:

add_library(lib2 STATIC lib2.cpp)

在这些子目录的 CMakeLists.txt 文件中,我们分别为 lib1lib2 创建静态库。这样,当我们构建 my_project 时,它将自动构建这两个库,并将它们链接到可执行文件中。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号