源文件 ---> 可执行文件,这一过程要执行的流程:
预处理 编译 汇编 链接
组成每一个程序的每个源文件通过编译过程分别转换成目标代码;每个目标代码由链接器捆绑在一起,形成一个单一而完整的可执行程序;链接器同时也会引入标准函数库中任何被该程序所用到的函数,而且它可以按照程序员个人的程序库将其需要的函数也链接到程序中.
Linux需要掌握:编辑器vim,编译器gcc/g++,调试器gdb,makefile多文件自动化编译
test.c
.i 生成预处理文件gcc -o test.i -E tesr.c (展开头文件 #include<>;进行宏替换)不进行语法检查
.s 汇编文件 gcc -o test.s -S test.i(进行语法检查,生成汇编文件)
gcc -o test.o -c test.s 生成目标文件
gcc -o test test.o链接生成最终的可执行文件
./执行文件test
#include<>和include""搜索路径不同
<>在安装程序的include下搜索""在当前的工作目录搜索.
1.头文件中 ifndef/defint/endif是干什么用的
2.#include<filename.h>和#include"filename.h"有什么区别