• 开始编写Makefile(三)Makefile的默认模式规则


    1.make中建立的其他语言的规则

    SCCS  , RCS , ar, lex 和yacc 命令

    2.为了建立一个目标,make会遍历一连串的依赖关系;这个是为 决定何处开始创建;

    如果没有找到目标文件;make按照有限顺序查找源文件

    3.了了生成目标文件,它首先查找带有(*.c,*.f或*.s)后缀的文件,如果一个都没有找到,它会继续寻找带*.c的后缀文件并继续搜搜;

    直到找到一个源文件。如果没有找到一个源文件;make就会报告一个异常。

    一、默认模式规则GUN make

    %是通用匹配符即通配符

    1 %.o:%c:
    2     $(CC) $(CFLAGS) -c $<

    二、默认的后缀规则

    SUFFIXES:.o.c.s
    .c.o
        $(CC) $(CFLAGS) -c $<

      

    示例:Makefile 案例文件

     1 ###############定义变量##################
     2 CC:=gcc
     3 CFLAGS:=-Iinclude
     4 CFLAGS+= -c
     5 TARGET:=bin/mymath_test
     6 DEPEND:=obj/mymath.o
     7 DEPEND+=obj/mymath_test.o
     8 
     9 $(TARGET):$(DEPEND)#开始执行
    10     $(CC) -o $@ $^
    11 
    12 #############采用模式规则编译###########
    13 obj/%.o:src/%.c
    14     $(CC) -o $@ $(CFLAGS) $^
    15 
    16 
    17 #############常规规则编译#################
    18 #obj/mymath.o:src/mymath.c
    19 #    $(CC) -o $@ $(CFLAGS) $^
    20 #obj/mymath_test.o:src/mymath_test.c
    21 #    $(CC) -o $@ $(CFLAGS) $^
    22 #################################################################
    23 
    24 .PHONY:clean#指定clean是虚目标
    25 ###################make clean 清除生成的文件######################
    26 clean:
    27     rm -fr $(TARGET) $(DEPEND)
  • 相关阅读:
    【Oracle】导入导出操作
    高德交通态势地址
    UML类图Java
    【SQL】数据库模糊查询
    【数据库】Java中数据库连接池原理机制的详细讲解
    随笔-使用时间管理有感
    【structs2】>>> FilterDispatcher <<< is deprecated!
    【算法】排序算法之插入排序
    【CSS】命名规范
    【JQuery】15个值得开发人员关注的jQuery开发技巧和心得
  • 原文地址:https://www.cnblogs.com/wanglijun/p/8643602.html
Copyright © 2020-2023  润新知