【CMake】顶层 CMakeList.txt 常用命令总结

文章目录

  • 1. cmake_minimum_required
    • 1.1. 简介
    • 1.2. 使用案例
      • 1.2.1. 执行构建的cmake版本低于`<min>`
      • 1.2.2. 设置`<policy_max>`
        • 1.2.2.1. `<policy_max>`低于`<min>`
        • 1.2.2.2. `<policy_max>`大于等于`<min>`

1. cmake_minimum_required

1.1. 简介

  • 功能:为项目设置cmake的最低要求版本
  • 常用程度:⭐⭐⭐⭐⭐
  • 命令格式
cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])
  • 命令详解
    • <min><policy_max>的格式:major.minor[.patch[.tweak]]
      • major:主版本号
      • minor:次版本号
      • patch:补丁版本号
      • tweak:微调版本号
    • 如果执行构建的cmake版本低于<min>,项目构建会停止并且会报告错误
    • <policy_max>如果指定,必须至少为<min>,影响策略设置。

1.2. 使用案例

  • Windows终端查看cmake版本
    cmake --version
    
    输出当前版本号为3.28.3
    D:\Test\projectX\build>cmake --version
    cmake version 3.28.3CMake suite maintained and supported by Kitware (kitware.com/cmake).

1.2.1. 执行构建的cmake版本低于<min>

  • CMakeLists.txt中的内容
    cmake_minimum_required(VERSION 3.30)
    
  • 执行cmake构建命令后的输出:
    -- Selecting Windows SDK version 10.0.19041.0 
    to target Windows 10.0.19045.
    CMake Error at CMakeLists.txt:1 (cmake_minimum_required):CMake 3.30 or higher is required.  You are running version 3.28.3-- Configuring incomplete, errors occurred!   

1.2.2. 设置<policy_max>

1.2.2.1. <policy_max>低于<min>
  • CMakeLists.txt中的内容
    cmake_minimum_required(VERSION 3.26...3.25)
    
  • 执行cmake构建命令后的输出
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19045.
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):Policy VERSION range "3.26...3.25" specifies a larger minimum than maximum.-- Configuring incomplete, errors occurred!
1.2.2.2. <policy_max>大于等于<min>
  • CMakeLists.txt中的内容
    cmake_minimum_required(VERSION 3.26...3.26)
    
  • 执行cmake构建命令后的输出
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19045.
    -- Configuring done (0.0s)
    -- Generating done (0.0s)
    -- Build files have been written to: D:/Test/projectX/build

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图机器学习(4)-面向连接层面的人工特征工程

0 问题定义 通过已经连接去猜未知连接&#xff1a; 有两个思路&#xff1a; &#xff08;1&#xff09;直接提取link的特征&#xff0c;把link变成D维向量&#xff1b; &#xff08;2&#xff09;把link两端节点的D维向量拼在一起&#xff0c;缺点&#xff1a;丢失了link本身…

【C++】手撕string类(超实用!)

前言 一、标准库中的string类 1.1 string类介绍 1.2 string的常用接口 1.2.1 常用的构造函数 1.2.2 容量操作接口 &#xff08;1&#xff09;size &#xff08;2&#xff09;capacity &#xff08;3&#xff09;empty &#xff08;4&#xff09;clear &#xff08…

MySQL 学习笔记(基础篇 Day3)

「写在前面」 本文为黑马程序员 MySQL 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. MySQL 学习笔记&#xff08;基础篇 Day1&#xff09; 2. MySQL 学习笔记&#xff08…

移掉 K 位数字(LeetCode 402)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路4.1 暴力法4.2 贪心 单调栈 参考文献 1.问题描述 给你一个以字符串表示的非负整数 num 和一个整数 k&#xff0c;移除这个数中的 k 位数字&#xff0c;使得剩下的整数最小。请你以字符串形式返回这个最小的整数。 示例 1 …

chrome插件开发的几种展现页面形式,3分钟看完

想要开发一个chrome浏览器插件&#xff0c;还是很有必要清楚插件都可以在哪些地方显示出来的&#xff0c;比如只想在pop页面弹出&#xff0c;还是添加右键菜单&#xff0c;还是提示桌面通知&#xff1f;还是在哪里展示&#xff1f;有哪些展示方式等 browserAction(浏览器右上角…

《C语言缺陷和陷阱》-笔记(1)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、和 1. 2. 二、&和 | &&和|| 二、复合操作符 三、字符串和字符 前言 在这一节中&#xff0c;我们将探索对记号的意义的普遍的误解以及记号和…

原油数据处理:1.聚类、盐含量测定与近红外光谱快速评估

一、原油种类的聚类分析 在塔里木盆地塔河油田的原油处理过程中&#xff0c;需要对原油进行地球化学特征研究&#xff0c;以了解其成因和特征。根据地球化学手段的综合研究结果&#xff0c;塔河油田奥陶系原油属于海相沉积环境&#xff0c;成熟度较高&#xff0c;正构烷烃分布…

内存映射实现父子进程通信

创建内存映射区&#xff1a; void *mmap(void *addr ,size_t length,int prot,int flags,int fd,off_t offset); 参数&#xff1a; addr 指定映射区的首地址。通常NULL&#xff0c;表示让系统自动分配length 共享内存映射区的长度prot 共享内存的读写属性 PROT_READ PR…

【记录37】VueBaiduMap 踩坑一

截图 错误 Error in callback for watcher “position.lng”: “TypeError: Cannot read properties of undefined (reading ‘setPosition’)” 解释 回调观察程序“content”时出错&#xff1a;“TypeError:无法读取未定义的属性&#xff08;读取’setContent’&#xff09;”…

Linux部分主要命令精讲

Linux部分命令精讲 Linux命令之stat命令 stat命令简介 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。stat命令可以查看的信息包括&#xff1a; File&#xff1a;显示文件名Size&#xff1a;显示文件大小Blocks&#xff1a;文件使用的数…

数据结构:Heap(二叉树)的基本操作

目录 1.有关二叉树必须知道的几个基本概念 2.有关二叉树的基本操作 2.0有关元素的定义以及要进行的操作 2.1初始化和销毁操作 2.2插入操作以及上调操作 2.2.1插入操作以及上调操作的图解 2.2.2插入操作以及上调操作的代码 2.3删除根元素及其下调操作 2.3.2删除根元素及…

使用AI纠正文章

我写了一段关于哲学自学的读书笔记&#xff0c;处于好奇的目的&#xff0c;让AI帮我纠正语法和逻辑。我的原文如下&#xff1a; 泰勒斯第一次提出了水是万物本源的说法&#xff0c;对于泰勒斯为什么提出这样的观点&#xff0c;或者是这样的观点是怎么来的&#xff0c;我们无从所…

Android studio Gradle下载失败,如何手动配置解决该问题详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 前言&#xff1a; 今天在打开公司一个项目时&#xff0c;突然要重新下载相关的gradle&am…

如何在paddlehub库中找到paddlehub.Module()所在的位置

要在PaddleHub库中找到paddlehub.Module()的位置&#xff0c;您可以通过以下步骤在PaddleHub库的源代码中进行查找&#xff1a; 1.确定PaddleHub库的安装位置&#xff1a;首先&#xff0c;确定您安装PaddleHub库的位置。通常&#xff0c;PaddleHub库会被安装在Python的site-pa…

Websocket实时音视频传输应用实战

背 景 随着互联网技术的发展&#xff0c;越来越多的企业和开发者开始寻求更高效、更稳定的通信解决方案。在这种背景下&#xff0c;WebSocket协议应运而生。WebSocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;它可以实现服务器和客户端之间的实时数据交换&#…

【Spring Boot 3】动态注入和移除Bean

【Spring Boot 3】动态注入和移除Bean 背景介绍开发环境开发步骤及源码工程目录结构总结动态注入Bean的方法动态移除Bean的方法注意事项背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个…

图像处理 mask掩膜

1&#xff0c;图像算术运算 图像的算术运算有很多种&#xff0c;比如两幅图像可以相加&#xff0c;相减&#xff0c;相乘&#xff0c;相除&#xff0c;位运算&#xff0c;平方根&#xff0c;对数&#xff0c;绝对值等&#xff1b;图像也可以放大&#xff0c;缩小&#xff0c;旋…

(二十一)从零开始搭建k8s集群——kubernates核心组件及功能介绍

前言 Kubernetes是一个可移植、可扩展、开源的平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;它促进了声明性配置和自动化。Kubernetes容器可以持续开发、集成和部署&#xff1a;可靠且频繁地构建和部署容器镜像&#xff0c;快速有效地回滚&#xff1b;开发与运…

点胶缺陷视觉检测都是怎么检测的?

点胶工艺是许多工业生产中不可或缺的一环&#xff0c;而点胶缺陷的存在往往直接影响到产品质量。为了提升点胶工艺的品质控制&#xff0c;点胶缺陷的视觉检测成为了一个重要的技术手段。 一、点胶缺陷的类型 点胶缺陷主要包括胶点大小不均、位置偏移、漏点、多点等。这些缺陷如…

VS Code搭建远程开发环境的几种情况

VS Code远程开发环境的三种情况&#xff1a; 一、本地桌面系统远程Linux系统 windowswsl是属于这种情况下的一种特殊情况。 使用Remote - SSH插件来解决这种情况 二、本地桌面系统本地Docker环境 windowswslwindows上部署Docker Desktop也是属于这种情况下的一种特殊情况。…