ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

makefile

2022-07-16 17:04:56  阅读:175  来源: 互联网

标签:src %. obj make makefile 规则


makefile: 管理项目。

    命名:makefile    Makefile  --- make 命令

    1 个规则:

       目标:依赖条件

       (一个tab缩进)命令

       1. 目标的时间必须晚于依赖条件的时间,否则,更新目标

       2. 依赖条件如果不存在,找寻新的规则去产生依赖条件。

    ALL:指定 makefile 的终极目标。

    2 个函数:

       src = $(wildcard ./*.c): 匹配当前工作目录下的所有.c 文件。将文件名组成列表,赋值给变量 src。  src = add.c sub.c div1.c

       obj = $(patsubst %.c, %.o, $(src)): 将参数3中,包含参数1的部分,替换为参数2。 obj = add.o sub.o div1.o

    clean: (没有依赖)

       -rm -rf $(obj) a.out “-”:作用是,删除不存在文件时,不报错。顺序执行结束。

    3 个自动变量:

       $@: 在规则的命令中,表示规则中的目标。

       $^: 在规则的命令中,表示所有依赖条件。

       $<: 在规则的命令中,表示第一个依赖条件。如果将该变量应用在模式规则中,它可将依赖条件列表中的依赖依次取出,套用模式规则。

    模式规则:

       %.o:%.c

          gcc -c $< -o %@

    静态模式规则:

相当于指定了这个规则给谁用

       $(obj):%.o:%.c

          gcc -c $< -o %@  

    伪目标:

不管条件满足与否,目标都要被执行

       .PHONY: clean ALL

    参数:

       -n:模拟执行make、make clean 命令。

       -f:指定文件执行 make 命令。              xxxx.mk

 

eg:把源文件、头文件、.o文件放在不同的文件夹下然后制作makefile

 

 

标签:src,%.,obj,make,makefile,规则
来源: https://www.cnblogs.com/chenya-coding/p/16484591.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有