Makefile基本使用

mac2022-07-05  23

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/windsnow1/article/details/95729846

摘要:

在Linux系统开发项目工程时,我们经常需要使用到Makefile来组织管理程序。对Makefile的掌握是Linux开发必不可少的环节,但是我们没有必要花大量的时间,掌握所有Makefile的规则以及语法等。下面介绍我们经常需要用到的一些规则和语法,并附上官方Makefile的使用手册,当面临新的规则和语法的问题的时候,可以查阅这些手册。

基本使用:

Makefile:组织管理程序

规则: ######################################################################### 目标文件:依赖文件 【TAB】命令

如果依赖文件比目标文件新,或者目标文件不存在,那么执行命令。 #########################################################################

语法: ######################################################################### 1. 通配符:     %     $@ 表示目标文件     $<  表示第一个依赖文件     $^  表示所有依赖文件

2. 假想目标:     .PHONY:     防止目标文件不存在,而不执行目标命令

3. 即时变量和延时变量     A := xxx    #A的值即刻确定,在定义的时即确定     B =  xxx    #B的值,使用的时候才能确定

:=   #即时变量 =    #延时变量 ?=  #延时变量,如果是第一次定义才起效,如果在前面该变量已经定义,则忽略 += #附加,它是即时变量还是延时变量,取决于前面的定义 #########################################################################

Makefile函数: ######################################################################### $(foreach var,list,text) $(filter pattern...,text)                           #在text中取出符合pattern格式的值 $(filter-out pattern...,text)                    #在text中取出不符合pattern格式的值 $(wildcard pattern)                              #pattern定义了文件名的格式                                                            #wildcard取出其中存在的文件 $(patsubst pattern,replacement,$(var))    #从列表中取出每一个值                                                               #如果符合pattern                                                               #则替换为replacement #########################################################################

手册链接:

http://www.gnu.org/software/make/manual/  (官方英文版本)

http://www.gnu.org/software/make/manual/make.pdf(英文手册下载链接)

中文翻译版本下载链接:https://download.csdn.net/download/windsnow1/11342827

 

最新回复(0)