Makefile基本使用

摘要:

在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

 

你可能感兴趣的:(Makefile,基本使用,手册下载)