第4课

来源:互联网 发布:2016淘宝最新刷单方法 编辑:程序博客网 时间:2024/06/10 03:02

一、makefile中支持程序设计语言中变量的概念

makefile中的变量只代表文本数据(字符串)

makefile中的变量名规则:

- 变量名可以包含字符,数字,下划线

- 不能包含“:” “#” “=” “ ”

- 变量名大小写敏感


二、变量的定义和使用

CC := gccTARGET := hello.out
$(TARGET) : func.o main.o    $(CC) -o $(TARGET) func.o main.o

示例:

CC := g++TARGET := hello-world.out$(TARGET) : func.o main.o$(CC) -o $(TARGET) func.o main.ofunc.o : func.c$(CC) -o func.o -c func.cmain.o : main.c$(CC) -o main.o -c main.c.PHONY : rebuild clean allrebuild : clean allall : $(TARGET)clean :rm *.o $(TARGET)


二、makefile中变量的赋值方式

1、简单赋值(:=)

- 程序设计语言中的通用赋值方式

- 只针对当前语句的变量有效

示例:

x := fooy := $(x)bx := new.PHONY : testtest :@echo "x => $(x)"@echo "y => $(y)"

x->new

y->foob


2、递归赋值(=

- 赋值操作可能影响多个其他变量

- 所有与目标变量相关的其他变量都将受到影响

x := fooy := $(x)bx := new.PHONY : testtest :@echo "x => $(x)"@echo "y => $(y)"

x->new

y->newb


3、条件赋值(?=)

- 如果变量未定义,使用赋值符号中的值定义变量

- 如果变量已经定义,赋值无效

示例:

x := fooy := $(x)bx ?= new.PHONY : testtest :@echo "x => $(x)"@echo "y => $(y)"

x->foo

y->foob


4、追加赋值(+=)

- 原变量值之后加上一个新值

- 原变量值与新值之间由空格隔开

示例:

x := fooy := $(x)bx += $(y).PHONY : testtest:    @echo "x => $(x)"    @echo "y => $(y)"

x->foo foob

y->foob




(版权声明:本文内容归狄泰软件所有,博主整理所得,未经博主允许不得转载。)