makefile

来源:互联网 发布:无机晶体学数据库 编辑:程序博客网 时间:2024/06/01 09:48

.phony:clean

clean :

         -rm *.o 减号 忽略错误。

VPATH makefile 中的一个变量

VPATH=src:../obj冒号分隔 顺序搜索,当前目录最高优先级。

vpath 小写为makefile 关键字,作用设置符合模式文件搜索路径

vpath *.c src

vpath *.o obj

vpath *.c source

vpath *.c 取消设置


makefile 函数

函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:
$(<function> <arguments> )
或是
${<function> <arguments>}
这里,<function>就是函数名,make支持的函数不多。<arguments>是函数的参数,参数
间以逗号“,”分隔,而函数名和参数之间以“空格”分隔。函数调用以“$”开头,以圆
括号或花括号把函数名和参数括起。感觉很像一个变量,是不是?函数中的参数可以使
用变量,为了风格的统一,函数和变量的括号最好一样,如使用“$(substa,b,$(x))”这
样的形式,而不是“$(substa,b,${x})”的形式。因为统一会更清楚,也会减少一些不必
要的麻烦。

参考

http://blog.csdn.net/ustc_dylan/article/details/6963248


@echo 你好

显示 你好

echo 你好

显示 echo 你好

          你好

make

-C

-f

-h

-o

-W


MAKELEVEL

:=

?=

变量PATH=/opt/app    #curent  path

echo $PATH

/opt/app[][][][]


变量高级使用

变量值的替换。

foo := a.o b.o c.o

bar := $(foo:.o=.c)

静态替换

foo := a.o b.o c.o
bar := $(foo:%.o=%.c)


override提示符

makefile 中CFLAGS+=-g              CFLAGS=-g

有override

make CLFAGS=-O2                   

结果 -g -O2                                     -g

没有override

make CFLAGS=-O2      

结果-O2                                        -O2



8

0 0
原创粉丝点击