ICode9

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

Makefile

2022-01-04 11:31:02  阅读:183  来源: 互联网

标签:文件 gcc Makefile command clean test rm


一:makefile命令规则
在这里插入图片描述
(1)targets:prerequlisites
command:
(2)targets:pererqulistes;command
command
eg:
clean
rm -r -f *.c *.o
clean 作为一个labe
rm …是command.

显示规则要求严格按照命令规则来书写。
make有自动命名推导功能。所以可以省略书写。比如clean没有说明依赖文件。-(make会在当前目录下或者是全局环境下自动推导出依赖文件)
而且clean是伪目标————只有执行make clean 的时候才会执行。
在clean中—> *,c中的“ * ”
是一个通配符:表示匹配全部的.c文件----->任意个字符(前面的东西你随意,只要后面是.c就行了)
在这里插入图片描述
2、变量的赋值
CC=gcc
就可以使用$(CC)替换gcc
在这里插入图片描述
3、自动化变量
在这里插入图片描述
eg;
test:test.o test.c test.h
gcc -o $@ $^
等义与:gcc -o test.o test test.h

3、目标文件搜索
VPATH:=src
文件在lib目录下搜索。
eg:
VPATH=src:ooo
test:test.o
gcc -o $@ $^
如果依赖文件不存在于当前目录下,那么他会去当前目录下的子目录下查找。

4、条件判断:
ifeq、ifneq 、ifdef 、ifndef

二、MAKEFILE伪目标。
伪目标的概念表示并不会生成目标文件但是会执行目标下的command
eg:
clean:
rm -f -r *.c *.o
但是如果当前目录下存在一个文件名为clean的文件,那么它就会表示生成目标文件clean由于没有依赖文件那么。就不会执行rm这个command。
我们可以通过申明一个伪目标这样就算目录下有重名文件。它也不会把clean隐式当成同名文件的目标
.PHONY:clean
clean:
rm -r -f *.c

三、函数调用
在这里插入图片描述
就是函数后面加参数

字符串替换函数:subst
字符串去空格函数:strip
查找字符串函数:findstring
文件操作函数:
取文件目录函数:
( d i r < a r g u m e n s > ) r e t : . / . . . . . . . . . . O B J = (dir <argumens>)ret:./.......... OBJ= (dir<argumens>)ret:./..........OBJ=

四、make命令的书写
-J 表示允许多条指令同时执行。同一时刻多核

五:文件包含
类似于头文件。
include<…>
会先去执行。。。。。的文件。

make嵌套时变量传递使用export:

六:
在这里插入图片描述
在这里插入图片描述

标签:文件,gcc,Makefile,command,clean,test,rm
来源: https://blog.csdn.net/wzf_Cql/article/details/122296208

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

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

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

ICode9版权所有