LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3817|回复: 2

Makefile中可以修改带入的参数吗?

[复制链接]
发表于 2010-8-22 23:28:19 | 显示全部楼层 |阅读模式
比如我Makefile写成这样:

ifeq (-DAAA, $(findstring -DAAA, $(CPPFLAGS)))
CPPFLAGS += -DBBB
endif

all:
echo $(CPPFLAGS)

运行make CPPFLAGS=-DAAA
结果显示-DAAA
在Makefile中操作CPPFLAGS没有效果吗?
发表于 2010-8-23 09:04:51 | 显示全部楼层
Post by 虫虫2003;2109342
比如我Makefile写成这样:

ifeq (-DAAA, $(findstring -DAAA, $(CPPFLAGS)))
CPPFLAGS += -DBBB
endif

all:
echo $(CPPFLAGS)

运行make CPPFLAGS=-DAAA
结果显示-DAAA
在Makefile中操作CPPFLAGS没有效果吗?


正确的格式是:

CPPFLAGS=-DAAA make

也就是说传入的环境放在前面。
回复 支持 反对

使用道具 举报

发表于 2010-8-28 20:32:30 | 显示全部楼层
楼上误导,请无视。

不要太懒,请读读手册:
http://www.gnu.org/software/make/manual/make.html#Overriding

"A=XXX make" Makefile 中 变量 A 定义 会覆盖 环境变量 A。
"make A=XXX" 会忽略 Makefile 中变量 A 定义,例外见手册。

Makefile 中使用未定义变量不是好习惯。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表