CMake 学习笔记

一直想了解CMake,但是不知从何入门。最近看了CMake 官方的Tutorial,感觉的确很适合入门。

首先要安装CMake, 安装步骤:

  1. 直接去下载最新版Download | CMake
  2. macos 点开CMake 后,遵循"How to Install For Command Line Use" 菜单项,使得cmake在 terminal可用

接下来直接按照Tutorial 的目录来阅读Tutorial 即可。

其中每一章节都会告诉你要学哪些东西,基本每条命令都有超链接链到该条命令的说明文档,先阅读说明文档,大致了解后,根据Todo 列表,依次在CMakeLists.txt里面写好本章所要求的项目,完成CMake build。即可学会当前章节内容。

这里记录一些命令:

复制代码
 check_cxx_source_compiles

常见的开源软件里检测某些函数是否存在应该就是使用这条命令。如:

bash 复制代码
 check_cxx_source_compiles("
    #include <cmath>
    int main() {
      std::log(1.0);
      return 0;
    }
    " HAVE_LOG)

cmake 就会尝试编译双引号内的代码,如果能编译成功,就会定义HAVE_LOG 变量为true,就表示std::log函数存在。

cmake build的输出如下:

bash 复制代码
-- Performing Test HAVE_LOG
-- Performing Test HAVE_LOG - Success
-- Performing Test HAVE_EXP
-- Performing Test HAVE_EXP - Success
相关推荐
hetao17338375 小时前
2025-12-12~14 hetao1733837的刷题笔记
数据结构·c++·笔记·算法
椰子今天很可爱5 小时前
五种I/O模型与多路转接
linux·c语言·c++
程序员zgh6 小时前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
獭.獭.8 小时前
C++ -- STL【unordered_set和unordered_map的使用】
c++·stl·unordered_map·unordered_set
star _chen9 小时前
C++ std::move()详解:从小白到高手
开发语言·c++
福尔摩斯张9 小时前
C++核心特性精讲:从C语言痛点出发,掌握现代C++编程精髓(超详细)
java·linux·c语言·数据结构·c++·驱动开发·算法
charlie1145141919 小时前
如何快速在 VS2026 上使用 C++ 模块 — 完整上手指南
开发语言·c++·笔记·学习·现代c++
报错小能手10 小时前
STL_unordered_map
开发语言·c++·哈希算法
历程里程碑10 小时前
C++ 9 stack_queue:数据结构的核心奥秘
java·开发语言·数据结构·c++·windows·笔记·算法
仰泳的熊猫11 小时前
1108 Finding Average
数据结构·c++·算法·pat考试