[008]C/C++系列 | Makefile文件描述(一)

一、背景

在此阅读之前推荐先阅读《 [008]C/C++系列 | 一个C编译过程》

二、文件描述

# #是注释   全新语言(不仅仅对于C/C++)
# 第一层:显式规则

# 1、语法格式
# 目标文件:依赖文件

# TAB指令
# 2、第一个目标文件是我们终极目标(有点像递归)

# 3、伪目标 .PHONY: 按照这个方式编译完成之后
#                .c .i .s .o 程序有错误 .c错误改了!!!
#                每一次编译 能不能先把之前的编译文件先删除

hello:hello.o
    gcc hello.o -o hello

hello.o:hello.s
    gcc -C hello.s -o hello.o

hello.s:hello.i
    gcc -S hello.i -o hello.s

hello.i:hello.c
    gcc -E hello.c -o hello.i


.PHONY:
# 删除所有文件
clearall:
    rm -rf hello.i hello.s hello.o hello
# 删除编译过程文件
clear:
    rm -rf hello.i hello.s hello.o

2.第一个目标文件是我们终极目标

 备注:

这样子设计的原因:假如当前文件存在,那么直接从该步骤开始编译

实操:

 扩展:

多个文件:circle.c circle.h cube.c  cube.h main.c main.h

test:circle.o cube.o main.o
    gcc circle.o cube.o main.o -o test

cube.o:cube.c
    gcc -C cube.c -o cube.o

main.o:main.c
    gcc -C main.c -o main.o

circle.o:circle.c
    gcc -C circle.c -o circle.o

.PHONY:
clear:
    rm -rf circle.o cube.o main.o test

测试结果: 

 注意:

微观过程:.c .i .s .o

宏观过程:gcc -c xxx.c -o xxx.o 

参考文献:

《C语言:makefile自动编译,提高软件开发的效率,你会用吗》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值