2021-03-11


前言

在软件工程中的源文件有很多,按照其功能,类型,模块分别放在若干个文件和目录中,哪些文件需要编译,哪些需要后编译,于是有了系统的编译工具。

在Linux和unxi中,使用make来管理多模块程序的编译和链接,生成可执行文件。
Makefile叫做编译规则说明文件。描述了整个软件工程的编译规则。
makefile就如一个shell脚本,可以执行操作系统命令,能够实现自动化编译。

make是一个解释Makefile中指令的命令工具。

一、Makefile的编写

makefile文件的规则可以很复杂,比C程序还要复杂,示例:

all :book1 book2
book:book1.c
	gcc -o book1 book1.c
book2:book2.c 
	gcc -o book2 book2.c
clean:
	rn -f book1 book2;
	

all是固定写法。
book1 book2表示要编译的程序清单,中间用空格分隔开,如果清单很长,用\换行

book1 book1.c:表示需要编译的目标程序。
当book1.c内容发生了变化,执行make的时候会重新编译book1.

gcc -o book1 book1.c
这是一个编译命令,(注意)gcc前的空格是tab键。

clean:清除目标文件,命令由:rem -f book1 book2.c执行,(tab)

二、make命令

Makefile准备好了后,执行make就可以编译makefile中的all指定目标文件。
make clean,执行清除目标文件的指令。

makefile文件中的变量

makefile中,变量就是一个名字,变量的值就是一个文本字符串。在makefile中的目标,依赖,命令或者其他地方引用变量时,变量会被它的值替代。
CC=gcc
FLAG=-g
all:book1 book2
book1:book1.c
$(CC) $(FLAG) -o book1 book1.c
book2:book2.c
$(CC) $(FLAG) -o book2 book2.c
clean:
rm -f book1 book2

CC=gcc:定义变量CC,赋值gcc
FLAG=-g:定义变量CC,赋值-g
$(CC) $(FLAG) -o book1 book1.c

来源于C语言技术网(www.freecplus.net)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值