Cmake可以生成makefile、可以应用到不同的操作系统库、涉及不同的编译器、Cmake使得我们可以使用IDE(针对与Vscode)、关联到代码的逻辑关系、Camke提供第三方工具、设定项目的时候提供C test
持续集成:每次集成需要自动化、手动打包成shell、发布成网站,自动化测试,然后再作集成测试,整个过程用自动化的形式构建、每天的集成、设计到接口的接口、快速集成需要自动化、Cmake自动化测试:有10个测试用例,有1个问题就改bug,产生问题,也可以使得问题的解决简单化。
Cmake被广泛性的使用,特性:自动搜索可能的依赖库,库有模块自动的加载,构建会影响到源码文件,散落在各个地方,不受以前构建的影响,以前用shell来写,Cmake可以自动,可选的组建可以方便选择,Cmake list没有过多的目录要求,静态库和动态库的构建,不需要与具体的编译器进行耦合。
Cmake.txt 会去读cmake.list,读取之后会生成可执行文件,会涉及到一些临时文件,临时文件会涉及到缓存、也即在第一次生成以后再第二次会存储在里面,改代码的时候会通过Cmakelist去更改,生成的目录就可以删掉,预处理的代码和缓存变量都存放到这个里面,我们可以选择不同的项目或者在不同的平台上面我们可以生成Ninja、make 、nmae,我们选择用make去读取Makefile 然后通过gcc进行编译最终生成执行文件。
Linux安装Cmake(ubuntu20.04 LT)
一、前置要求:
安装好ubuntu20.04版本64位系统 配置好系统网络 准备好cmake源码
二、直接安装
apt install cmake
二进制安装
三:源码编译安装
1.安装编译工具和依赖库
sudo apt install g++
sudo apt install make
apt install ninja-build
apt install unzip
apt install libssl-dev
2.下载解压cmake源码并编译
wget https://github.com/Kitware/CMake/releases/download/v3.23/cmake-3.23.1.tar.gz
tar-xvf cmake-3.23.1.tar.gz
cd cmake-3.23.1
./configure
make -j32
#不加j32是单线程编译、加-j32是多线程编译
3.安装编译好的Cmake
sudo make install
#安装在/usr/local/share/cmake-3.23
4.设置Cmake的运动路径
vi ~./bash_profile
文件中添加
export PATH=/usr/local/share/cmake-3.22$PATH
5.运行cmake查看版本
cmake--version
#cmake version 3.23.1
#CMake suit maintained and supported be Kitware (kitware.com/cmake)
Cmake的第一个示例cmakelist
一:前置准备
准备测试的C++程序文件first_cmake.cpp
在源码的同目录下编写第一个CMakeList.txt
二:Windows平台编译
//101first_cmake
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<<"first CMake TEST"<<endl;
return 0;
}
CMakeList.txt
#CMakeList.txt cmake 文件名大小写不敏感
#指定cmake最低版本
cmake_minimum_required(VERSION 3.20)
#构建项目的名称
project(first_cmake)
#构建执行程序
add_executable(first_cmake 101first_cmake.cpp)
下面就可以编译了
Ubuntu(linux)平台编译:
前置准备:
安装好gcc编译工具
sudo apt install g++
sudo apt install make
如果需要用到Ninja
sudo apt install ninja-build
生成项目文件:
生成makefile
cmakes -S. -B build
生成Ninja项目
cmake-S. -B build -G "Ninja"
指定项目工具
在linux主要有两种,一种是生成make的makefile一种是生成Mimja的build.ninja生成
Ninja的build.ninja 生成makefile见上面示例生成Ninja cmake_-G Ninja
#之前的代码
cmake -S . -B build
对整个文件进行编译有两种方案
1.cd build/
2.make
or
1.cd ..
2.cmake --build