1.Makefile定义宏供源文件使用
Makefile:
#STR_A=“Hello” error
all:
gcc -o test main.c -D STR_A -D STR_A 必须放在编译选项的最后
main.c:
#include <stdio.h> char info=STR_A; //这里的宏定义来自Makefile void main(void) { printf("%d ", info); //1 }
2.Linux内核编译一个目标多个源文件
path:drivers/media/i2c/adv748x adv748x-objs := adv748x-afe.o adv748x-core.o adv748x-csi2.o adv748x-hdmi.o obj-$(CONFIG_VIDEO_ADV748X) += adv748x.o
3.Makefile中$^表示所有依赖,$<表示第一个依赖
eg:
Person: main.o person.o 此时$^为main.o person.o,$<为main.o
4.Makefile中的通配符
%o : %.cpp g++ $< -c -o $@