makefile基本结构

如果大家在Linux环境进行程序编写的话,那么大家就要了解makefie了。也许你会说Linux也有很多大的开发集成环境啊譬如Eclipse,QT等等,但是我要说的是这些开发环境只不过是隐藏了makefile的功能罢了。特别是在BootLoader和kernel移植的的时候不会makefile可能会很不方便。下面我来说说makefile的基本思想。

一:

target :约束条件

TAB  cmd

这就是makefile的基本思想,它就是靠这样的关系一层一层地进行关联的。大家一定要注意的就是命令行前面一定要加TAB空格键

二:

接下来来说说变量。因为有了变量以后就可以使makefile变得更加简洁。makefile的变量主要有以下几种:

a=b

a:=b

a ?=b

a +=b

头两种属于延时变量,第三种属于立即变量,第四种是什么变量根据后面的变量的情况而定。

下面还有几种自动变量

$@  表示目标文件

$^ 表示所有的依赖文件

$< 表示第一个依赖文件

可能还有很多其他函数以后再慢慢补充。哈哈

三:函数

关于函数这里就不多说了。有很多我也记不住,大家可以到网上搜一下。或者在读makefile文件的时候需要再查一下。

四:make的推理功能

makefile基本结构_第1张图片

如上图所示,由于make有推理功能所以很多语句就省略了。譬如第一个完整的应该是  main.o : main.c  defs.h

并且下面应该跟个命令   cc -c main 

五:关于包含的定义

关注一下vpath。将包含的目录都包含进去。这个以后再研究。呵呵

一定要注意所有的命令前面都要加“Tab”。

 

你可能感兴趣的:(操作系统之linux)