
Intro

- 前话
- 在某天A菌学习CMake开始前。
- 打开Zeal(这里Linux是Zeal,Mac是Dash)扫了一眼API。
- 然后......
Q? & A?
- Q: 茫茫多的API,我们如何学习?
- 我也不知,总之边用边学。
- 从简单的例子开始。
- 逐渐丰富项目结构,开始入手一些API。
- 遇到问题,查找资料和API列表。
- 反复这个过程。
- 忌: 短平快。
- 宜: 积累。
- Q: 我们从哪里开始?
前提准备
- 安装好
GCC/G++编译器并配置环境变量 - 系统安装好
CMake软件并配置bin目录至环境变量path中
开始
Step1: 建立一个简单的C++项目

// main.cpp
// 这些都是标准库,标准库可以理解成 官方提供的API
#include <cmath> // 提供数学函数
#include <cstdlib> // 提供通用工具函数
#include <iostream> // 提供输入输出流功能。
#include <string> // 提供字符串处理功能
// main 函数是程序的入口点
// argc 是命令行参数的数量
// argv 是命令行参数的数组
int main(int argc, char* argv[])
{
// 检查命令行参数的数量。如果参数少于 2 个(即没有提供数字),则输出使用说明并返回 1,表示错误。
if (argc < 2) {
std::cout << "Usage: " << argv[0] << " number" << std::endl;
return 1;
}
// 将命令行参数转换为 `double` 类型的数字。
const double inputValue = atof(argv[1]);
// 计算输入值的平方根,并输出结果。程序返回 0,表示成功。
const double outputValue = sqrt(inputValue);
std::cout << "The square root of " << inputValue << " is " << outputValue
<< std::endl;
return 0;
}
Step2: 尝试编译

通常我们会使用g++进行编译,编译器输出a.out二进制文件,然后我们可以直接使用./a.out运行程序。
假使我们使用了许多lib,项目非常复杂,恐怕g++也不会那么好用了。
于是我们才需要学习CMake,接下来我们尝试使用CMake进行编译。
Step3: CMake

- 建立
CMakeLists.txt - 我们尝试使用
三个API来描述这个计算平方根的项目cmake_minimum_required()project()add_executable()
// 顶层CMakeLists.txt必须使用 cmake_minimum_required()指定最低 CMake 版本,以确保兼容性。
cmake_minimum_required(VERSION 3.10)
// 声明项目名称
project(ACM_1)
// ACM_1项目中有一个可执行文件名为main.cxx
add_executable(ACM_1 main.cxx)
Step4: 尝试编译
# 在CMake配置文件同一级创建build目录
mkdir build
# 切换当前目录为build目录
cd build
# 使用cmake命令生成一些文件与Makefile
cmake ..


最后我们使用make来编译出我们的可执行文件


总结
致此我们的第一个CMake起点项目完成啦,要记住三个API哦。