cmake 添加不同目录下源码

在使用 CMake 构建项目时,如果你的项目源代码分布在不同的目录下,你可以使用 aux_source_directory() 函数来帮助你收集这些目录下的源文件,然后将它们添加到你的可执行文件或库中。下面是如何操作的详细步骤:

1. 使用 aux_source_directory()``aux_source_directory() 函数可以将指定目录下的所有源文件名称赋值给一个变量。这个函数的基本用法如下:cmakeaux_source_directory(<dir> <variable>)- <dir> 是你想要收集源文件的目录。- <variable> 是存储这些源文件路径的变量。### 2. 示例假设你的项目结构如下:project/│├── CMakeLists.txt│├── src/│ ├── main.cpp│ └── CMakeLists.txt│└── lib/ ├── utility.cpp └── CMakeLists.txt你想要在 src 目录下创建一个可执行文件,它使用了 srclib 目录下的源文件。#### 在 project/CMakeLists.txt 中首先,在项目的根目录 CMakeLists.txt 文件中,你需要包含子目录:cmakecmake_minimum_required(VERSION 3.10)project(MyProject)# 包含子目录add_subdirectory(src)add_subdirectory(lib)#### 在 project/src/CMakeLists.txt 中然后,在 src 目录的 CMakeLists.txt 文件中,你可以使用 aux_source_directory() 收集 src 目录下的源文件,并创建一个可执行文件:cmake# 收集当前目录下的源文件aux_source_directory(. SRC_LIST)# 添加可执行文件add_executable(my_executable ${SRC_LIST})#### 在 project/lib/CMakeLists.txt 中在 lib 目录的 CMakeLists.txt 文件中,你同样可以使用 aux_source_directory() 收集 lib 目录下的源文件。但是,由于你想要将这些源文件链接到 src 目录下的可执行文件,你需要将这些源文件添加到一个库中,然后在 src 目录的 CMakeLists.txt 中链接这个库:cmake# 收集当前目录下的源文件aux_source_directory(. LIB_SRC_LIST)# 添加静态库add_library(my_library STATIC ${LIB_SRC_LIST})#### 链接库最后,回到 project/src/CMakeLists.txt,你需要链接 lib 目录下创建的库:cmake# 链接库target_link_libraries(my_executable my_library)通过这种方式,你可以将不同目录下的源文件添加到你的项目中,并构建你的应用程序。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值