美文网首页Linux
Linux-Makefile(一)

Linux-Makefile(一)

作者: 飞向深空 | 来源:发表于2022-01-03 15:58 被阅读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
    

    符号 意义

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

    相关文章

      网友评论

        本文标题:Linux-Makefile(一)

        本文链接:https://www.haomeiwen.com/subject/nvbxcrtx.html