makefile总结之一

概述:
makefile的好处:可以自动化编译,make这个命令工具在/usr/bin下,用于解释makefile。

程序的编译:预处理,汇编,编译,链接。

链接:主要链接函数和全局变量,使用.o文件。可以将多个.o文件打包成一个库文件

makefile的规则:若整个工程未被编译过则编译所有的源文件并链接,如果某些.c文件被修改则只编译被修改的c文件并链接,如果某些头文件被修改则编译引用此头文件的c文件并链接。

目标:依赖文件
TAB键command
如果依赖文件中有一个或多个文件比目标新,则会编译,此为makefile最核心内容。

     注意:
makefile将第一个目标文件视为最终的目标文件,若makefile中其他目标文件与此文件没有直接或间接关系,则与之相对应的命令就不会被执行。这也是伪目标文件clean/tar/install等实现的原理,只有make后直接加上后才会被执行。

自动推导: make可自动推导命令,如编译main.o,依赖文件中可不写main.c,make可自动推出这个文件。

变量:
       为了便于维护,可采用变量方式。这样修改一个文件名时就不用依次修改。

伪目标文件:
.PHONY:clean,关键字.PHONY。

总结一:makefile的五个部分:显式规则,隐晦规则,变量定义,文件指示,注释
隐晦规则指自动推导功能
文件指示:makefile文件可以引用另外一个makefile文件
                 定义一个多行命令
                 可以像C中的预编译一样,指定文件中的有效部分
注释:#的单行注释

make寻找文件顺序:GNUmakefile  makefile  Makefile  ,一般推荐最后一个。
make -f 指定makefile文件

关键字include可以指定包含相应的makefile文件,include前不可为TAB键,如同C的关键字一样,命令开始后将文件内容加入到相应的位置。make参数-I指定搜索路径

环境变量MAKEFILES,当定义此变量,make就会将此变量中的值实行一个类似include的动作,但是引入的makefile中的目标不会起作用。最好不要定义这个变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值