1.源文件.cpp和头文件.h
假如a.cpp里定义函数f1,a.h里声明函数f1,b.cpp想用函数f1,则b.cpp得包含a.h。
https://www.runoob.com/w3cnote/cpp-header.html
2.源文件、目标文件、可执行文件
源文件就是人写的源代码,编译之后生成目标文件,再链接一下变成可执行文件
1)编辑:就是创建和修改C程序的源代码-我们编写的程序称为源代码。
2)编译:就是将源代码转换为机器语言。编译器的输出结果成为目标代码,存放它们的文件称为目标文件。扩展名为.o或者.obj。
(该部分编译是指汇编器编译汇编语言或者编译器编译高级语言)
3)链接:链接器将源代码由编译器产生的各种模块组合起来,再从C语言提供的程序库中添加必要的代码模块,将它们组成一个可执行的文件。在windows下扩展名为.exe,Unix下无扩展名。
4)执行:运行程序。
https://www.jianshu.com/p/7c609b70acbd
3.编译器
(1)编译器是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言),将便于人编写,阅读,维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件,编译器将原始程序(Source program)作为输入,翻译产生使用目标语言(Target language)的等价程序。源代码一般为高阶语言 (High-level language), 如 Pascal、C、C++、C# 、Java 等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code);编译器流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行文件 (executables)。
(2)gcc是编译器,但是一次编译一个源文件,源文件多时麻烦;make根据规则文件makefile批量编译,makefile中就包含gcc,但是编写makefile也麻烦;cmake根据cmakelist.txt自动生成makefile,cmake可以跨平台生成对应平台能用的makefile,无需自己根据每个平台的不同特性去修改,IDE可以生成cmakelist.txt文件。