嵌入式系统嵌入式系统Makefile文件编写一、实验目的一、实验目的 1、读懂makefile文件,能根据makefile文件理清程序结构 2、能编写简单makefile二、实验原理二、实验原理 1、makefile 2、make工具MakefileMakefile Makefile主要包含了五部分:–显式规则–隐含规则–变量–文件指示–注释显式规则显式规则由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,执行的命令– target ... : prerequisites ...command ...– target:要生成的目标文件– prerequisites:target所依赖的文件– command:make所要执行的命令(任意的shell命令)隐含规则隐含规则 make内部自定义的一些规则。当一个target没有显式的定义生成规则,make寻找一条隐含规则生成该target例: foo : -o foo $(CFLAGS) $(LDFLAGS),,,用来代替一个文本字符串,该文本字符串称为该变量的值变量的定义–变量名= 值递归调用扩展型变量 eg:foo = $(bar)bar=os–变量名:= 值简单扩展型变量 eg:bar:=osfoo = $(bar) 引用变量时需在前面加上$变量变量变量是在makefile中定义的名字,用来代替一个文本字符串,该文本字符串称为该变量的值变量的定义–变量名= 值递归调用扩展型变量 eg:foo = $(bar)bar=os–变量名:= 值简单扩展型变量 eg:bar:=osfoo = $(bar) 引用变量时需在前面加上$缺点:。如在:CFLAGS = $(CFLAGS) -O ,变量一旦展开函数就会立即执行GNU make的主要预定义变量GNU make的主要预定义变量$*:去除目标文件扩展名的文件名。,则$*为foo $+:所有的依赖文件,可能包含重复的文件$<:第一个依赖文件的名字$?:修改日期比目标文件的创建日期要晚的依赖文件$@:目标文件的完整名称$^:所有的依赖文件,不包含重复的文件$%:如果目标文件是归档文件,则其表示归档文件的成员名GNU make的主要预定义变量(续)GNU make的主要预定义变量(续) AR:归档维护程序的名称,默认值为ar ARFLAGS:归档维护程序的选项 AS:汇编程序的名称,默认值为as ASFLAGS::C编译器的名称, CFLAGS:C编译器的选项 CPP:C预编译器的名称,默认值为$(CC)-E CPPFLAGS:C预编译器的选项 CXX:C++编译器的名称,默认值为g++ CXXFLAGS:C++编译器的选项 FC:FORTRAN编译器的名称,默认值为f77 FFLAGS:FORTRAN编译器的选项
Makefile文件编写60917 来自淘豆网m.daumloan.com转载请标明出处.