总体概括:
cmakeList.txt ----->cmake工具---->makefile文件(包含gcc/g++命令)---->make工具---->编译连接源文件
编译器的工作流程:
源码(source code)---->预处理器(preprocessor)---->编译器(compiler)---->汇编程序(assembler)---->目标代码(target code)---->链接器(linker)---->可执行程序(executable)
GCC:全称GNU Compiler Collection,是GNU编译器套装,最开始是编译c语言,后来可处理c++、java等语言
G++:是GCC对C++的升级版本
Make:是批处理工具,通过规则文件makefile调用GCC等实现编译
CMake:是跨平台编译工具,依赖规则文件CMakeList.txt生成makefile
GCC
- 基本用法
语法: gcc/g++ [options] file...
gcc [-E | -S | -c] [-std=standrad]
[-g] [-Idir] [-Ldir]
[-o outfile]
基本选项
-E Preprocess only; do not compile, assemble or link 预处理
-S Compile only; do not assemble or link 编译,生成 .s 汇编代码
-c Compile and assemble, but do not link 编译和汇编,生成 .o 的 obj 文件
-o <file> Place the output into <file> 链接,将 .o 链接到指定的可执行文件,若不指定可执行文件的名称,默认为 a.out目录选项