CMake 入门教程之三
大纲
前言
本文将介绍 CMake 的常用语法,包括查找源文件、指定输出目录、设置编译参数、链接第三方库等。
查找文件
查找源文件
1 | # 查找 src 目录下的所有源文件,并保存到 SOURCE_FILES 变量 |

本文将介绍 CMake 的常用语法,包括查找源文件、指定输出目录、设置编译参数、链接第三方库等。
1 | # 查找 src 目录下的所有源文件,并保存到 SOURCE_FILES 变量 |
本文将介绍 CMake 是什么,并使用 CMake 编译第一个 C/C++ 项目。
| 构建工具 | 主要用途 | 适用平台 | 特点 | 常见使用场景 |
|---|---|---|---|---|
| Make | 经典构建系统 | Unix/Linux/macOS,Windows(MinGW / Cygwin) | GNU 工具链标配,依赖 Makefile | Linux 系统编译、跨平台项目 |
| CMake | 跨平台构建配置生成器 | 跨平台 | 不直接编译,生成 Makefile / Ninja / VS 工程 | 跨平台 C/C++ 项目管理 |
| Ninja | 高性能并行构建 | 跨平台 | 构建速度快,文件依赖解析简单 | CMake、Chromium、LLVM 等大型项目 |
| NMake | 命令行 Make 工具(微软版) | Windows | 随 MSVC 提供,适合命令行构建简单项目 | MSVC 环境下的轻量构建 |
| MSBuild | 编译和管理 Visual Studio 项目(.sln/.vcxproj) | Windows | 与 VS 深度集成,支持 MSVC 编译器 | Visual Studio 传统项目构建 |
| Meson | 现代化构建系统 | 跨平台 | 默认用 Ninja 构建,语法简单 | GNOME、GStreamer 等项目 |
| Bazel | Google 出品构建系统 | 跨平台 | 支持大型代码库、分布式构建 | TensorFlow、Google 内部项目 |
| SCons | 基于 Python 实现的构建系统 | 跨平台 | 配置用 Python 脚本编写,依赖少 | 嵌入式或定制化构建流程 |
CMake 是用于构建、测试和软件打包的开源跨平台工具。
| 高可用方案 | 保证数据强一致性 | 使用说明 | 描述 |
|---|---|---|---|
| 主从复制 | 否 | 支持单主 | 只适用于对可用性和数据一致性要求较低的业务场景。 |
| MMM | 否 | 支持单主 | 基本淘汰了,在一致性和高并发稳定性等方面有些问题。 |
| MHA | 否 | 支持单主 | 有少数开发者还在用,但也有些问题,也是趋于淘汰的 MySQL 主从高可用方案。 |
| MGR | 是 | 支持单主 / 多主 | 基于 MySQL 官方从 5.7.17 版本开始引入的组复制技术。 |
| MySQL Cluster | 是 | 支持多主 | MySQL 官方提供的一种分布式数据库解决方案,只支持 NDB 引擎。 |
| Galera Cluster | 是 | 支持多主 | 引领时代的主从复制高可用技术。 |
| Galera Cluster for MySQL | 是 | 支持多主 | MySQL 对 Galera Cluster 的实现。 |
| MariaDB Galera Cluster (MGC) | 是 | 支持多主 | MariaDB 对 Galera Cluster 的实现。 |
| Percona XtraDB Cluster (PXC) | 是 | 支持多主 | Percona 对 Galera Cluster 的实现,目前业界使用 PXC 的会多一些。 |
| MySQL InnoDB Cluster | 是 | 支持单主 / 多主 | MySQL 官方推出的一套完整高可用性解决方案。 |
本文主要介绍 SpringBoot 3 如何使用 AOT 技术,包括在 Windows、Linux 平台使用 GraalVM 将 SpringBoot 应用编译成原生镜像(二进制可执行文件)。
AOT:Ahead of Time(提前编译),程序执行前,全部被编译成机器码JIT:Just in Time(即时编译),程序边编译边运行编程语言的分类
本文主要介绍 SpringBoot 3 如何整合 Actuator、Prometheus 与 Grafana,实现微服务应用的监控。
可观测性 (Observability) 一般是指对线上应用进行观测、监控、预警等,包括的详细内容如下: