一、Makefile规则
二、Makefile案例-多个文件生成一个目标文件
三、Makefile–生成多个目标文件
四、Makefile包含 头文件和库文件
我们工作的时候经常会遇到 要多写几个不同的测试案例,去测试不同的功能,这个时候 需要编译多个 可执行文件。
假如我们的目录下有三个原文件需要编译成可执行文件
test1.c test2.c test2.c
test1.c
#include <stdio.h>
void doFunc1(void)
{
}
int main(int argc, char **argv)
{
doFunc1();
return 0;
}
test2.c
#include <stdio.h>
void doFunc2(void)
{
}
int main (int argc, char **argv)
{
doFunc2();
return 0;
}
test3.c
#include <stdio.h>
void dofunc3(void)
{
}
int main(int argc, char **argv)
{
fofunc3();
return 0;
}
Makefile 编译生成多个 可执行文件
TARGET1 = test1
TARGET2 = test2
TARGET3 = test3
.PHONY: all
all: $(TARGET1) $(TARGET2) $(TARGET3)
$(TARGET1): $(TARGET1).o
$(GCC) -o $< $@
$(TARGET2): $(TARGET2).o
$(GCC) -o $< $@
$(TARGET3): $(TARGET3).o
$(GCC) -o $< $@
#Build object
%.o:%.c
$(GCC) -c $< -o $@
.PHONY: clean
clean:
-@rm -f $(TARGET1) $(TARGET1).o
-@rm -f $(TARGET2) $(TARGET2).o
-@rm -f $(TARGET3) $(TARGET3).o