CMake
# 一、CMake介绍
# 1,CMake概述
- CMake 是一个开源的跨平台工具系列,旨在构建、测试和打包软件;
- CMake 使用与平台、编译器独立的简单配置文件,来控制软件编译过程,并生成当前编译环境的 Makefile 文件;
- Makefile 通常依赖于当前的编译平台,手写 Makefile 的工作量比较大,解决依赖关系时也容易出错;
- CMake 工具套件由 Kitware 创建,以满足 ITK 和 VTK 等开源项目对强大的跨平台构建环境的需求;
- CMake 广泛用于 C 和C++语言,但它可用于 也构建其他语言的源代码;
# 2,编译的四个步骤
# a) 预处理(Preprocessing)
- 预处理器会处理源代码中的预处理指令,包括头文件展开、宏定义替换、注释删除、条件编译等;
g++ -E main.cc -o main.i
,生成.i
的预处理文件,文件里面还是代码;
# b) 编译(Compilation)
- 编译器对预处理后的代码逐行检查语法错误(最耗时),并将预处理文件中的代码翻称成汇编指令,生成汇编文件;
g++ -S main.i -o mian.s
,生成.s
的汇编文件,文件里面是汇编指令;
# c) 汇编(Assembly)
- 汇编器将汇编文件编译成二进制指令,得到二进制文件(还不可执行);
g++ -c main.i -o main.o
,生.o
成的二进制文件;
# d) 链接(Linking
- 链接器通过数据段合并、数据地址回填、库引入等合成为一个单一文件,这个文件可被加载到内存并执行;
g++ main.io -o main
,生可执行文件;
# 二、常用的命令
# 1 命令行选项
# a) 生成项目构建系统
提示
CMake是一个构建系统生成器,生成相应构建系统(如:Unix Makefile、Ninja、Visual Studio等)的构建文件,告诉构建系统应当如何操作才能编译代码;
源树:包含项目源文件和顶级 CMakeLists.txt
文件的目录;
构建树:生成系统文件和生成输出的顶级目录;
构建器:选择要生成的构建系统类型,默认选择当前平台;
cmake [<options>] -B <path-to-build> [-S <path-to-source>]
cmake [<options>] <path-to-source | path-to-existing-build>
1
2
2
编辑 (opens new window)
上次更新: 2023/09/03, 12:32:21