2021-06-03程序编译的四个阶段

程序编译的四个阶段

1.预处理

1.1宏替换
1.2头文件展开
1.3去注释
1.4条件编译
gcc -E [file] -o [file].i

2.编译

1.语法语义的检测
gcc -S [file] -o [file].s
将源代码转化成为汇编代码

3.汇编

将汇编代码转化成为机器代码(二进制代码)
gcc -c [file] -o [file].o

4.链接

1.用目标文件+库文件生成可执行程序
静态链接:
gcc 命令行当中,需要增加一个参数:-static
动态链接:
默认就是动态链接的

make&makefile

make的解释makefile文件的规则
1.make会在当前目录下找名字叫“Makefile”或“makefile”的文件
2.永远只为生成第一个目标对象而服务
3.若目标对象相对于依赖对象而言,较新,则不生成
4.make在生成第一个目标对象的时候,如果依赖对象也需要后续生成,则先生成依赖对象之后,使用依赖对象生成目标对象

makefile文件下的伪命令

目的:一般用来删除文件用
格式:.PHONY:目标对象
“伪目标”:例:clean,all,我们声明一个“all”的伪目标,其依赖于其他目标,由于伪目标的特性是总是被执行的,所以其依赖的目标总是不如“all”新,所以命令“make clean”可以删除“all”后的依赖对象也就是这个伪目标的依赖目标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值