编写通用Makefile

本文介绍了如何编写通用Makefile,主要分为三个部分:1) 分析GCC编译过程;2) 解析Makefile的规则和通配符;3) 详细说明不同层级Makefile的职责,包括子目录Makefile、顶层目录Makefile和顶层目录的Makefile.build。通过这些内容,读者可以了解如何组织和使用Makefile来高效管理项目编译。
摘要由CSDN通过智能技术生成

    近期在看韦东山的数码相框视频,有讲到怎么写一个通用的makefile,遂赶紧记录下来。废话不多说,下面进入正题。

1)程序的编译过程
        4个步骤:预处理,编译,汇编,链接.
      预处理:  检测语法错误,把头文件包含进来,宏展开.
      编译:把.  c文件转换成汇编文件.s
     汇编:把.  s文件转换成二进制文件.o
     链接:.      .o文件+库文件 =可执行程序

    gcc -v -o hello hello.c  就可观看到编译的细节.

2)Makefile

 核心:规则
 目标:依赖1 依赖2
 命令 
 命令执行的条件:
 i. "依赖"文件 比 "目标"文件 新
 ii.没有"目标"这个文件

 假设我们包含的文件要用到:a.c b.c a.h
1>  来看第一个makefile:

test:a.c b.c a.h
	gcc -o test a.c b.c
</pre>对于a.c: 预处理、编译、汇编对于b.c:预处理、编译、汇编最后链接优点:命令简单缺点:如果文件很多,即使你只修改了一个文件,但是所有的文件文件都要重新"预处理、编译、汇编"      效率低<p>2>第二个Makefile</p><p></p><pre code_snippet_id="277584" snippet_file_name="blog_20140406_1_3955355" name="code" class="cpp">test:a.o b.o
	gcc -o test a.o b.o
a.o : a.c 
	gcc -c -o a.o a.c	
b.o : b.c
	gcc -c -o b.o b.c	
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值