码迷,mamicode.com
首页 > 其他好文 > 详细

Makefile

时间:2020-06-22 01:58:06      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:冗余   自己   工作   目标   问题:   出错   obj   程序   add   

0 引言

Makefile 是代码管理工具。之所以需要Makefile是因为gcc/g++有可能会写很长很长,容易出错。所以有人提出了一种代码管理工具,Makefile,即可完成代码管理工具。

通常Makefile是架构师写的,每个人只需要完成自己的部分即可。当然,如果能够读一点Makefile我觉得也是很有用的。

1 编写规则

1.1 makefile 三要素

  a. 目标  b. 依赖  c. 命令

目标:依赖文件
  tab: 命令
version1:
app: main.c add.c sub.c mul.c
  gcc main.c add.c sub.c mul.c -o app
$ make # 执行Makefile中的命令
# 存在的问题:每次都得把所有的文件全部编译,造成时间浪费,进行修改得到version2
version2:
app:main.o add.o sub.o mul.o
    gcc main.o add.o sub.o mul.o -o app

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

add.o:add.c
    gcc -c add.c

mul.o:mul.c
    gcc -c mul.c

sub.o:sub.c
    gcc -c sub.c

# 如果有多条规则,默认第一条中的目标为终极目标
# 如果目标中涉及到的依赖没有,那么就继续访问Makefile找到其依赖生成的规则;通过向下检索,构建出一颗关系依赖树
# 这种方式可以将每个程序分开进行编译,提高了程序编译的效率;其原理是通过对比 *.c, *.o 的生成时间,来自动更新依赖树,实现只重新编译被修改过的文件,提高工作效率。

# 存在的问题:冗余

obj=main.o add.o sub.o mul.o
target=app
$(target):$(obj)
    gcc $(obj) -o $(target)
%.o:%.c
  gcc -c $< -o $@

 

 

 

 

 

 

 

Makefile

标签:冗余   自己   工作   目标   问题:   出错   obj   程序   add   

原文地址:https://www.cnblogs.com/ghjnwk/p/13174581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!