gcc和makfile

gcc和makfile

  • gcc
    • 预处理(进行宏替换)
    • 编译(生成汇编)
    • 汇编(生成机器可以识别的代码)
    • 连接(生成可以执行的文件或者库文件)
  • make
    • makefile文件的编写

gcc

没安装的话,按照终端提示的安装命令安装就行
运行的格式: gcc [选项] [要编译的文件] [选项] [目标文件]

一个程序编译的话,一般包括4个阶段
1.预处理:进行宏替换
2.编译(生成汇编)
3.汇编(生成机器可以识别的代码)
4.连接生成可以执行的文件或者库文件

预处理(进行宏替换)

这里以一个test2.c的文件为例

命令: gcc -o 文件名 重定义文件名

gcc -o 命令,也就是把文件名重定义下

命令 gcc -E test2.c - o test2.i
在这里插入图片描述
gcc和makfile_第1张图片

编译(生成汇编)

命令: gcc -S test2.i -o test2.s

在这里插入图片描述
gcc和makfile_第2张图片

汇编(生成机器可以识别的代码)

在这里插入图片描述
在这里插入图片描述

连接(生成可以执行的文件或者库文件)

在这里插入图片描述

这里生成了可执行文件mybin
直接在根目录下执行就行

./mybin
在这里插入图片描述
简单总结下
gcc -E .c文件 -o .i文件
gcc -S .o文件 -o .s文件
gcc -c .s文件 -o .o 文件
gcc .o文件 -o 可执行文件
根目录下直接运行可执行文件

make

如果文件很多的话,那么用gcc命令就很麻烦
所以推出了make命令,要想执行make命令,就要编写出makefile文件

makefile文件的编写

编写makefile文件的本质:
1.编写依赖关系
2.编写依赖方法
两者缺一不可

makefile文件编写:
方法一
gcc和makfile_第3张图片

gcc和makfile_第4张图片

makefile文件编写
方法二:

gcc和makfile_第5张图片

gcc和makfile_第6张图片

至于make命令中的
.PHONY: clean

你可以理解成一个固定的写法,记住就行
编译文件的话
用make命令

在这里插入图片描述

删除文件的
用make clean 命令

当然makefile文件的编写,比较复杂,我这里也只是简单的应用了下

你可能感兴趣的:(linux,gcc,makefile)