Linux

Linux-Makefile(一)

2022-01-03  本文已影响0人  飞向深空

Makefile文件名字需要是Makefile或者makefile.
管理一个项目工程,实质上就是管理项目文件间的依赖关系,当工程复杂度再上一个台阶的时候,会觉得手写 Makefile 也很麻烦,那个时候可以用 CMake、autotools 等工具来帮忙生成 Makefile。

# 定义变量
 TARGET = hello_main
 CC = gcc
 CFLAGS = -I.    #指定头文件路径
 DEPS = hello_func.h
 OBJS = hello_main.o hello_func.o

# 目标文件
 $(TARGET): $(OBJS)
 $(CC) -o $@ $^ $(CFLAGS)

#*.o 文件的生成规则
 %.o: %.c $(DEPS)    #依赖文件有头文件后,头文件修改make也会更新
 $(CC) -c -o $@ $< $(CFLAGS)

 # 伪目标
 .PHONY: clean
 clean:
 rm -f *.o hello_main

符号 意义

 $@ 匹配目标文件
 $% 与 $@ 类似,但 $% 仅匹配“库”类型的目标文件
 $< 依赖中的第一个目标文件
 $^ 所有的依赖目标,如果依赖中有重复的,只保留一份
 $+ 所有的依赖目标,即使依赖中有重复的也原样保留
 $? 所有比目标要新的依赖目标
上一篇 下一篇

猜你喜欢

热点阅读