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
相关推荐
聆风吟º几秒前
【顺序表习题|图解|双指针】移除元素 + 删除有序数组中的重复项
c语言·数据结构·c++·经验分享·算法
岁月蹉跎的一杯酒4 分钟前
Clion opencv C++无法直接读取本地图像
c++·人工智能·opencv
学困昇4 分钟前
Linux 进程概念与内存管理详解(含冯诺依曼体系结构、环境变量、调度算法)
linux·c语言·开发语言·网络·数据结构·c++
carver w5 分钟前
open cv 基础操作合集 python
开发语言·c++
肥大毛12 分钟前
C++入门学习---指针
开发语言·c++·学习
崇山峻岭之间13 分钟前
C++ Prime Plus 学习笔记039
c++·笔记·学习
AuroraWanderll14 分钟前
C++面向对象与类和对象(一)----C++重要基础入门知识
c语言·数据结构·c++·算法·stl
草莓熊Lotso15 分钟前
哈希表封装 myunordered_map/myunordered_set 实战:底层原理 + 完整实现
服务器·开发语言·数据结构·c++·人工智能·哈希算法·散列表
45288655上山打老虎9 小时前
C++完美转发
java·jvm·c++
SunkingYang10 小时前
程序崩溃闪退——MFC共享内存多次OpenFileMapping和MapViewOfFile而没有相应的UnmapViewOfFile和CloseHandle
c++·mfc·共享内存·崩溃·闪退·close·openfilemapping