概述
Make工程管理器也就是一个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。用户只需要编写一次简单的编译语句就可以了。他大大提高了实际项目的工作效率。
Makefile基本结构
一个makefile文件通常包含如下内容:
需要由make工具创建的目标体(target),通常是目标文件或者可执行文件;
要创建的目标体所依赖的文件(dependency_file)
创建每个目标体时需要运行的命令(command)
格式为:
target:dependency_files
command
Makefile文件的命名
默认的情况下,make会在当前工作目录下按照文
件名顺序寻找makefile文件读取并执行,查找的文件名
顺序为:“GNUmakefile”、“makefile”、“Makefile”。
通常应该使用“makefile”或者“Makefile”作为一个
Makefile的文件名。推荐使用:Makefile。
当makefile文件的命名不是这三个任何一个时,需
要通过make的“-f”或者“–file”选项来指定make读取的Makefile文件。例如:
make -f Make.linux
特殊变量(自动变量)
$@:表示规则的目标所对应的文件名。
$<:表示规则中的第一个相关文件名。
$^:表示规则中所有相关文件的列表,以空格为分隔符。
$?:表示规则中日期新于目标的所有相关文件的列表,以空格为分隔符。
伪目标声明
.PHONY:target
例:clean:
rm a.o b.o
学写Makefile
the simplest example:
hello.o:hello.c hello.h
gcc –c hello.c –o hello.o
在终端下使用命令make hello.o
显示:gcc –c hello.c -o hello.o