当前位置: 首页 > wzjs >正文

大连金广建设集团青岛seo招聘

大连金广建设集团,青岛seo招聘,做网站备案成功后怎么办,做华为网站的还有哪些在 CMake 中,set 和 list 是两个核心命令,用于变量管理和列表操作。理解它们的用法对于编写高效的 CMakeLists.txt 文件至关重要。下面详细介绍这两个命令的功能和常见用法: 一、set 命令:变量定义与赋值 set 命令用于创建、修改…

在 CMake 中,set 和 list 是两个核心命令,用于变量管理和列表操作。理解它们的用法对于编写高效的 CMakeLists.txt 文件至关重要。下面详细介绍这两个命令的功能和常见用法:

一、set 命令:变量定义与赋值

set 命令用于创建、修改或删除 CMake 变量。变量是 CMake 中存储数据的基本单元,可以存储字符串、数字、路径或列表。

1.基本语法
set(<变量名> <值>... [PARENT_SCOPE] [CACHE <类型> <文档字符串> [FORCE]])
2.常见用法
1)定义普通变量
set(PROJECT_NAME "MyProject")  # 定义项目名称
set(CMAKE_CXX_STANDARD 17)     # 设置 C++ 标准
2)定义列表变量

CMake 中没有专门的列表类型,列表用分号分隔的字符串表示:

set(SOURCE_FILES src/main.cpp src/module1.cpp src/module2.cpp)
# 等价于 SOURCE_FILES = "src/main.cpp;src/module1.cpp;src/module2.cpp"
3)缓存变量(Cache Variable)

缓存变量用于跨构建会话存储值(如编译选项),通常在第一次配置时设置:

set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries")
4)父作用域变量

默认情况下,变量作用域限于当前目录或函数。使用 PARENT_SCOPE 可将变量传递到父作用域:

function(SET_VERSION)set(VERSION "1.0.0" PARENT_SCOPE)
endfunction()
5)环境变量

使用 $ENV{VAR} 读取系统环境变量:

set(USERNAME $ENV{USER})  # 读取系统用户名

二、list 命令:列表操作

list 命令用于处理列表变量,提供了丰富的列表操作功能。

1.基本语法
list(<子命令> <参数>...)
2.常见子命令
1)APPEND:添加元素
list(APPEND SOURCE_FILES src/module3.cpp)
2)REMOVE_ITEM:删除元素
list(REMOVE_ITEM SOURCE_FILES src/module2.cpp)
3)FIND:查找元素位置
list(FIND SOURCE_FILES "src/main.cpp" INDEX)
# INDEX 为元素索引(从0开始),未找到时为 -1
4)SORT:排序
list(SORT SOURCE_FILES)
5)REVERSE:反转列表
list(REVERSE SOURCE_FILES)
6)GET:获取指定位置的元素
list(GET SOURCE_FILES 0 FIRST_FILE)  # 获取第一个元素
7)LENGTH:获取列表长度
list(LENGTH SOURCE_FILES COUNT)
8)SUBLIST:获取子列表
list(SUBLIST SOURCE_FILES 1 3 SUB_FILES)  # 获取索引1到3的子列表

三、set 与 list 的配合使用

set 和 list 通常结合使用来管理项目中的文件列表、编译选项等:

示例 1:管理源文件列表
# 初始化源文件列表
set(SOURCE_FILES src/main.cpp)# 添加更多源文件
list(APPEND SOURCE_FILES src/module1.cppsrc/module2.cpp
)# 排除测试文件(如果不需要)
list(REMOVE_ITEM SOURCE_FILES src/test.cpp)# 使用列表创建可执行文件
add_executable(myapp ${SOURCE_FILES})
示例 2:处理编译选项列表
# 定义编译选项列表
set(COMPILE_OPTIONS -Wall -Wextra)# 根据平台添加特定选项
if(WIN32)list(APPEND COMPILE_OPTIONS -DWIN32)
else()list(APPEND COMPILE_OPTIONS -DUNIX)
endif()# 应用编译选项到目标
target_compile_options(myapp PRIVATE ${COMPILE_OPTIONS})

 四、注意事项

  1. 列表 vs. 字符串

    • CMake 中列表用分号分隔,例如 "a;b;c"
    • 使用 ${VAR} 展开变量时,若变量是列表,会自动展开为分号分隔的形式。
  2. 变量作用域

    • 函数内部定义的变量默认是局部的,使用 PARENT_SCOPE 或缓存变量可突破作用域限制。
  3. 缓存变量的特殊性

    • 缓存变量(CACHE)会保存在 CMakeCache.txt 中,除非使用 FORCE 选项,否则不会被重新设置。

五、小结

  • set:用于创建和管理变量,是 CMake 中最基本的赋值命令。
  • list:用于操作列表变量,提供了灵活的列表处理能力。

http://www.dtcms.com/wzjs/437440.html

相关文章:

  • 局域网内用自己电脑做网站小红书seo排名规则
  • 需要品牌网站建设seo小白入门教学
  • 途牛旅行网网站建设国家免费培训学校
  • wordpress虚拟百度seo有用吗
  • 北京网站建设团队百度推广开户
  • 咨询公司排名前十名梧州网站seo
  • 网站建设协seo搜索引擎优化人才
  • 网站建设毕业设计综述百度极速版推广
  • 哪些网站可以做文字链广告周口网站建设公司
  • 电商网站建设推荐电工培训技术学校
  • 太原网页seo是什么意思中文翻译
  • 芜湖做公司网站营销推广内容
  • 网站的登录功能一般是用cookie做的资源链接搜索引擎
  • 个人网站建设 毕业设计蜂蜜网络营销推广方案
  • 建站成本seo营销课程培训
  • 宜选科技就是帮人做网站有没有购买链接
  • WordPress添加2233娘宁波seo智能优化
  • 做网站属于什么职位网站seo排名优化
  • 可以做初中地理题的网站网络营销推广活动
  • 建站塔山双喜百度投放广告联系谁
  • 网站是用织梦系统做的首页打开超慢台州优化排名推广
  • asp网站的优点北京网站快速排名优化
  • 文山网站开发最好用的手机优化软件
  • 自定义优定软件网站建设营销策划与运营方案
  • 企业网站备案号密码忘记最有创意的广告语30条
  • b s网站系统如何做性能测试网页版登录入口
  • 广州网站优化推广公司注册公司网站
  • wordpress 调取菜单seo顾问服
  • 瑞安市网站建设上海百度搜索优化
  • 淘宝客网站免费模板下载网址导航下载到桌面