1. makefile就像一个Shell脚本一样,可以执行操作系统的命令,它定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
2.make 是一个命令工具,用来解释Makefile文件中的指令(规则)。可以避免许多不必要的编译
3. 编写规则: 目标:依赖
执行指令
2.编写C的makefile文件
4. makefile文件引入变量需加 $
5.makefile 预定义变量
$* 不包含扩展名的目标文件名称。
$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
$< 第一个依赖文件的名称。
$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
$@ 目标的完整名称。
$^ 所有的依赖文件,以空格分开,不包含重复的依赖文件。
$% 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为
(image.o),则 $@ 为 ,而 $% 为 image.o。
AR 归档维护程序的名称,默认值为 ar。
ARFLAGS 归档维护程序的选项。
AS 汇编程序的名称,默认值为 as。
ASFLAGS 汇编程序的选项。
CC C编译器的名称,默认值为 cc。
CFLAGS C编译器的选项。
CPP C 预编译器的名称,默认值为 $(CC) -E。
CPPFLAGS C预编译的选项。
CXX C++编译器的名称,默认值为 g++。
CXXFLAGS C++编译器的选项。
FC FORTRAN编译器的名称,默认值为 f77。
FFLAGS FORTRAN编译器的选项。
2.make 是一个命令工具,用来解释Makefile文件中的指令(规则)。可以避免许多不必要的编译
3. 编写规则: 目标:依赖
执行指令
1.编写c++的makefile文件
#注释
makefile:
all:hello
clean:-rm main.o hello
hello:main.o
g++ -g -o hello main.o
main.o:main.cpp
g++ -c -g main.o main.cpp
2.编写C的makefile文件
#注释
makefile:
all:hello
clean:-rm main.o hello
hello:main.o
gcc -g -o hello main.o
main.o:main.c
gcc -c -g main.o main.c
4. makefile文件引入变量需加 $
5.makefile 预定义变量
$* 不包含扩展名的目标文件名称。
$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
$< 第一个依赖文件的名称。
$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
$@ 目标的完整名称。
$^ 所有的依赖文件,以空格分开,不包含重复的依赖文件。
$% 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为
(image.o),则 $@ 为 ,而 $% 为 image.o。
AR 归档维护程序的名称,默认值为 ar。
ARFLAGS 归档维护程序的选项。
AS 汇编程序的名称,默认值为 as。
ASFLAGS 汇编程序的选项。
CC C编译器的名称,默认值为 cc。
CFLAGS C编译器的选项。
CPP C 预编译器的名称,默认值为 $(CC) -E。
CPPFLAGS C预编译的选项。
CXX C++编译器的名称,默认值为 g++。
CXXFLAGS C++编译器的选项。
FC FORTRAN编译器的名称,默认值为 f77。
FFLAGS FORTRAN编译器的选项。
如果有更新则执行下一行的程序代码。因此Makefile可以把文件关联起来