如何确认makefile文件(如何使用makefile文件)

技术如何发现makefile如何发现makefile,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。默认的情况下,make命令会在当前目录下按

很多新手不太清楚如何找到makefile。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

默认情况下,make命令将按顺序在当前目录中搜索名为“GNUmakefile”、“makefile”和“makefile”的文件,并找到该文件的解释。

在这三个文件名中,最好使用文件名‘Makefile’,因为这个文件名的第一个字符是大写的,很有目的性。最好不要用GNU make认可的‘GNUmakefile’。

目标:受抚养人_1受抚养人_2.受抚养人_n

命令_1

命令_2

命令_3

(1)makefile中的变量赋值方法

makefile中定义的变量在赋值时还有其他引用变量,makefile会一步一步展开变量。

赋值运算符前后可以有几个空格。

1运算符=

递归展开引用变量,直到找到引用变量的最新值(搜索makefile)

我爱

变量=linux

var=$(变量)

变量=魔力

all:

@echo $(var)

输出:

我喜欢魔术

2运算符:=

递归展开引用变量,只找到变量赋值前最新引用变量的值(不要搜索整个makefile)。

m :=毫米

x :=$(m)

y :=$(x)巴

x :=更高

all:

@echo $(x) $(y)

输出:

$x -稍后

$y - mm酒吧

(如果y:=更改为y=,则$y的值为:稍后的小节)

3运算符=

您可以通过=

如果变量之前没有定义过,=与=相同,后者定义了一个递归扩展的变量。然而,当变量被定义后,=只是添加字符。

如果一开始定义的变量是:=的话,那么=只能通过使用变量的当前值来添加。

如果一开始用=定义变量,那么=的行为就有点奇怪了。它不会在使用=的地方立即展开变量,而是将展开推迟到找到最后一个变量的定义,这类似于=定义变量的行为。

4操作员?=(不起作用)

指定默认值。如果变量未初始化,请为其分配默认值。例如:

ARCH=手臂

ARCH?=i386

all:

@echo $(ARCH)

输出:

手臂

ARCH=

ARCH?=i386

all:

@echo $(ARCH)

输出:

i386

(2)makefile主要预定变量

$ *目标文件名,不包括扩展名

的所有依赖文件都可能包含重复的依赖文件,以空格分隔,并按出现的顺序排列。

% HTML _ CONTENT % lt第一个相关文件的名称

$?的所有从属文件,用空格分隔,其修改日期晚于目标的创建日期。

$ @目标的全名

$由空格分隔的所有依赖文件不包含重复的依赖文件。

$%如果目标是归档成员,此变量指示目标的归档成员名称。

(3)在3)makefile中使用默认函数

1个通配符

2 patsubst

3 notdir

SUB_DIR=。/locate order_maker调度程序传输

INCLUDE=$(foreach temp,$(SUB_DIR),-I./$(temp))

SRC=$(foreach temp,$(SUB_DIR),$(通配符$(temp)/*。cpp))

OBJS=$(foreach temp,$(SRC),$(patsubst %)。cpp,%。o,$(温度)))

OBJS_LINK=$(foreach temp,$(OBJS),obj/$(patsubst %)。cpp,%。o,$(notdir $(temp)))

(4)makefile中的文件搜索路径

在makefile中,可以通过给VPATH赋值来设置规则中目标文件和依赖文件的搜索目录。

首先,搜索当前目录。如果没有找到相关文件,make将根据VPATH中给出的目录搜索VPATH,该目录对makefile中的所有文件都有效。

例如:

vpaths :=/c/Ming \

/c/明/头

您也可以使用VPATH指令。vpath和vpath的区别在于,vpath可以为不同类型的文件指定不同的搜索目录。

例如:

vpath。c /c/ming

vpath。高/中/明/头

vpath %。c表示清除vpath为% c设置的所有搜索目录。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157744.html

(0)

相关推荐

  • java基础知识回顾之java Thread类学习,二)--java多线程安全问题,锁)

    技术java基础知识回顾之java Thread类学习,二)--java多线程安全问题,锁) java基础知识回顾之java Thread类学习(二)--java多线程安全问题(锁)上一节售票系统中我们

    礼包 2021年12月23日
  • windows API怎么使用入门sleep

    技术windows API怎么使用入门sleepwindows API怎么使用入门sleep,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。windows

    攻略 2021年10月23日
  • 如何娇喘,女人为什么那么难以满足

    技术如何娇喘,女人为什么那么难以满足婚前跟一个女孩约过两次,她有男友所以之后一直不答应再约,怎么求都不愿意,求了半年多才有第二次,后来再也不理我,后来就和老婆闪婚了如何娇喘。可能跟那女孩床上太和谐了显得跟老婆做很没意思,

    生活 2021年10月29日
  • java socket如何接收保证能读完数据

    技术java socket如何接收保证能读完数据这篇文章主要介绍java socket如何接收保证能读完数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!socket接收保证能读完数据//

    攻略 2021年10月31日
  • 记一次关于pdf 下载需求变更到 pdf 在线预览

    技术记一次关于pdf 下载需求变更到 pdf 在线预览 记一次关于pdf 下载需求变更到 pdf 在线预览背景:之前的需求是根据接口中提供的Blob数据实现PDF下载,已实现代码如下:1     

    礼包 2021年10月27日
  • 几种常见的Python算法实现分别有哪些

    技术几种常见的Python算法实现分别有哪些这篇文章将为大家详细讲解有关几种常见的Python算法实现分别有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、选择排序

    攻略 2021年10月25日