在Cmakelist指令中,aux_source_directory 和 set 的区别

在CMake中,aux_source_directoryset是两个用于定义变量,但用途和行为有所不同的命令。

aux_source_directory

aux_source_directory命令用于自动查找指定目录下的所有源文件,并将文件列表存储在指定变量中。这个命令通常用于项目中自动收集源文件,避免了手动列出所有源文件的需要,特别是当源文件数量较多或经常更改时。

语法:

aux_source_directory(<dir> <variable>)
  • <dir>是你想要搜索源文件的目录。
  • <variable>是存储找到的源文件路径的变量。

例如:

aux_source_directory(. SRC_LIST)

这会将当前目录(.)下的所有源文件列表存储到变量SRC_LIST中。

set

set命令用于显式地设置一个变量的值,可以用于定义源文件列表或任何其他类型的变量值。

语法:

set(<variable> <value1> <value2> ... <valueN>)
  • <variable>是你想要设置的变量名。
  • <value1> <value2> ... <valueN>是要赋给变量的值,可以是一个或多个值,对于源文件列表,这些值通常是文件路径。

例如:

set(SRC_LIST main.cpp helper.cpp)

这会显式地将SRC_LIST变量设置为包含main.cpphelper.cpp两个文件的列表。

区别总结

  • 用途aux_source_directory用于自动查找目录下的所有源文件,而set用于手动设置一个或多个值给变量。
  • 自动化aux_source_directory提供了一种自动化方式来收集源文件,减少了手动维护文件列表的工作;而使用set时,你需要明确知道并指定每一个源文件。
  • 灵活性set命令在设置变量时提供了更高的灵活性,可以用于定义任意类型的数据,包括但不限于文件列表、编译选项、定义等。

为了维持项目的清晰和易于管理,明确列出所有源文件使用set命令更方便。在其他情况下,特别是在源文件频繁变动时,使用aux_source_directory可以减少维护成本。

相关推荐

  1. Cmakelist指令,aux_source_directory set 区别

    2024-03-26 10:18:02       37 阅读
  2. 几种Mapset区别

    2024-03-26 10:18:02       56 阅读
  3. Map、SetObject区别

    2024-03-26 10:18:02       31 阅读
  4. SEO 域权限页面权限之间区别

    2024-03-26 10:18:02       30 阅读
  5. RISC-V架构mret、sret、ret三个指令区别

    2024-03-26 10:18:02       70 阅读
  6. 工作 cmakelist 积累

    2024-03-26 10:18:02       48 阅读
  7. 【Linux】文本替换Ubuntu sed 指令使用指南

    2024-03-26 10:18:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 10:18:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 10:18:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 10:18:02       87 阅读
  4. Python语言-面向对象

    2024-03-26 10:18:02       96 阅读

热门阅读

  1. ARM day8

    2024-03-26 10:18:02       32 阅读
  2. Linux配置elasticsearch开机自启

    2024-03-26 10:18:02       39 阅读
  3. 「Linux系列」Shell 函数详解

    2024-03-26 10:18:02       46 阅读
  4. android卡顿流程分析总结

    2024-03-26 10:18:02       45 阅读
  5. gstreamer udp rtp发送本地视频文件

    2024-03-26 10:18:02       39 阅读
  6. 4A架构:企业数字化转型的核心引擎

    2024-03-26 10:18:02       40 阅读
  7. vue2项目关联el-table和el-pagination

    2024-03-26 10:18:02       44 阅读
  8. 服务器为互联网发送数据出现丢包情况

    2024-03-26 10:18:02       47 阅读
  9. 28.找出字符串中第一个匹配项的下标

    2024-03-26 10:18:02       40 阅读