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

CMakeLists常用命令

# 设置cmake最低版本
cmake_minimum_required(VERSION 3.2)# project命令用于指定cmake工程的名称,实际上,它还可以指定cmake工程的版本号(VERSION关键字)、
#简短的描述(DESCRIPTION关键字)、主页URL(HOMEPAGE_URL关键字)
#和编译工程使用的语言(LANGUAGES关键字)
# project(<PROJECT-NAME> [<language-name>...])
# ${PROJECT_NAME}:本CMakeLists.txt的project名称
**project(xxx)**# project(<PROJECT-NAME> [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] 
#[DESCRIPTION <project-description-string>][HOMEPAGE_URL <url-string>] 
#[LANGUAGES <language-name>...])
project(mytest VERSION 1.2.3.4)
project (mytest HOMEPAGE_URL “https://www.XXX(示例).com”)# 获取路径下所有的.cpp/.c/.cc文件(不包括子目录),并赋值给变量中
**aux_source_directory(路径 变量)**# 设置变量,给文件名/路径名或其他字符串起别名,用${变量}获取变量内容
**set(变量 文件名/路径/...)**# 打印消息
**message(消息)**STATUS:输出一条普通状态消息(默认类型,如果省略类型则默认为 STATUS)。WARNING:输出一条警告消息。AUTHOR_WARNING:输出一条给构建系统维护者的警告消息。FATAL_ERROR:输出一条错误消息并停止 CMake 配置过程。SEND_ERROR:与 FATAL_ERROR 相同,输出一条错误消息并停止 CMake 配置过程。
例子:
# 输出一条普通状态消息 
message("This is a status message.") 
# 输出一条警告消息  
message(WARNING "This is a warning message.")  # 编译子文件夹的CMakeLists.txt
**add_subdirectory(子文件夹名称)**# 将.cpp/.c/.cc文件生成.a静态库
# 注意,库文件名称通常为libxxx.so,在这里只要写xxx即可
**add_library(库文件名称 STATIC 文件)**
例子:add_library(mylib STATIC src/lib.cpp src/lib2.cpp)//创建一个名为 mylib 的静态库,包含 src/lib.cpp 和 src/lib2.cpp 这两个源文件
add_library(mysharedlib SHARED src/lib.cpp src/lib2.cpp)//创建一个名为 mysharedlib 的动态库# 将.cpp/.c/.cc文件生成可执行文件
**add_executable(可执行文件名称 文件)**# 规定.h头文件路径
**include_directories(路径)**#函数获取指定组件的文件名,并将其保存到变量中
**get_filename_component(<variable> <component> <path> [BASE_DIR <base-dir>] [NAME_WE <name-we>])**<variable>:用于存储提取的组件的变量名。<component>:要提取的组件类型,如 DIRECTORY、NAME、EXT 等。<path>:要处理的文件路径。DIRECTORY:提取路径中的目录部分。NAME:提取路径中的文件名(包括扩展名)。EXT:提取路径中的文件扩展名。NAME_WE:提取路径中的文件名(不包括扩展名)。ABS_PATH:提取路径的绝对路径。
例子:get_filename_component(MY_DIR "${MY_PATH}" DIRECTORY)//MY_DIR 会存储 MY_PATH 的目录部分get_filename_component(MY_NAME "${MY_PATH}" NAME) //MY_NAME 会存储文件名(包括扩展名)#用于向目标(如库或可执行文件)添加编译选项
**add_compile_options(<option>...)**
例子:target_compile_options(my_target PRIVATE -Wall -Wextra -Werror)**option(<name> "help string describing <name>" [initial value])**
用于定义一个可以在配置时由用户设置的选项。这个选项可以是一个布尔值(ON 或 OFF)
例子:option(MY_OPTION "Enable some feature in my project" ON)
MY_OPTION 是一个选项,它的描述是 "Enable some feature in my project",并且它的默认值是 ON#用于文件搜索的命令,它会根据给定的模式匹配文件,并将匹配到的文件列表赋值给一个变量
**file(GLOB ...)**
例子:file(GLOB sources "src/*.cpp")   //使用 GLOB 收集当前目录下的所有 .cpp 文件  
http://www.lryc.cn/news/337020.html

相关文章:

  • 英语 倒装结构中的主语和助动词,用于强调 inversion
  • SQL注入---HTTP报头注入
  • docker安装sentinel
  • 达梦的归档日志参数ARCH_RESERVE_TIME测试
  • Linux网络 基础概念
  • 装机指导。
  • 解决windows docker context deadline exceeded问题
  • django基于python的法院执法案件管理系统
  • tcp early retransmit 和 rack 中神奇的 1/4 minrtt
  • 【强化学习实践】Gym+倒立单摆+创建自己的环境
  • 实习记录小程序|基于SSM的实习记录小程序设计与实现(源码+数据库+文档)
  • Netty NioEventLoop详解
  • 互联网大厂常见面试题目
  • TechTool Pro for Mac v19.0.3中文激活版 硬件监测和系统维护工具
  • Linux-docker安装数据库redis
  • LisJson解析配置表
  • 剑指offer10.斐波那契数列(动态规划)
  • HarmonyOS实战开发-WebSocket的使用。
  • 【前缀合】Leetcode 连续数组
  • 一些优雅的算法(c++)
  • Docker Desktop修改镜像存储路径 Docker Desktop Start ... 卡死
  • 小型企业网络安全指南
  • springboot相关报错解决
  • python 中 from import, __name__, __all__, __init__.py 作用,python的模块和导入包
  • Composer安装与配置详解
  • A5 STM32_HAL库函数 之 CAN通用驱动程序所有函数的介绍及使用
  • python如何判断图片为黑白还是彩色
  • C语言进阶课程学习记录-main函数与命令行参数
  • Utilize webcam to capture photo with camera
  • 【uniapp】开发微信小程序 — 注意事项