为了账号安全,请及时绑定邮箱和手机立即绑定

makefile 预定义变量的默认值怎么用?

makefile 预定义变量的默认值怎么用?

ibeautiful 2019-04-03 07:07:34
makefile 预定义变量的默认值怎么用
查看完整描述

4 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

1.Makefile 基本结构
Makefile 是 Make 读入的惟一配置文件,因此本节的内容实际就是讲述 Makefile 的编写规则。在一个 Makefile 中通常包含如下内容:
1)需要由 make 工具创建的目标体(target),通常是目标文件或可执行文件;
2)要创建的目标体所依赖的文件(dependency_file);
3)创建每个目标体时需要运行的命令(command)。
它的格式为:
target: dependency_files
command
注意:在 Makefile 中的每一个 command 前必须有“Tab”符,否则在运行 make 命令时会出错。

例如,有两个文件分别为 hello.c 和 hello.h,创建的目标体为 hello.o,执行的命令为 gcc。编译指令:gcc –c hello.c,那么,对应的 Makefile 就可以写为:
#The simplest example
hello.o: hello.c hello.h
gcc –c hello.c –o hello.o

接着就可以使用 make了。使用make 的格式为:make target,这样 make 就会自动读入Makefile(也可以是首字母小写 makefile)并执行对应 target 的 command 语句,并会找到相应的依赖文件。如下所示:
[root@localhost makefile]# make hello.o
gcc –c hello.c –o hello.o
[root@localhost makefile]# ls
hello.c hello.h hello.o Makefile
可以看到,Makefile 执行了“hello.o”对应的命令语



查看完整回答
反对 回复 2019-04-13
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

$(result) = sss 这行错了,删掉,改成
result = sss
all:
echo st
echo $(result)

查看完整回答
反对 回复 2019-04-13
?
哔哔one

TA贡献1854条经验 获得超8个赞

MakeFile中的变量定义 一般在我们书写Makefile时,各部分变量引用的格式我们建议如下: 1. make变量(Makefile中定义的或者是make的环境变量)的引用使用“$(VAR)”格式。 2. 出现在规则命令行中shell变量(一般为执行命令过程中的临时变量,它不属于Makefile变量,而是一个shell变量)引用使用shell的“$tmp”格式。 3. 对出现在命令行中的make变量我们同样使用“$(CMDVAR)” 格式来引用。 MakeFile中给变量赋值有以下两种方式 1.递归展开式,使用=直接定义,例子如下: foo = $(bar) bar = $(ugh) ugh = Huh? all:;echo $(foo) 执行“make”将会打印出“Huh?”。整个变量的替换过程时这样的:首先“$(foo)”被替换为“$(bar)”,接下来 “$(bar)”被替换为“$(ugh)”,最后“$(ugh)”被替换为“Hug?”。整个替换的过程是在执行“echo $(foo)”是进行的。 这种方式的缺点是 缺点1:使用此风格的变量定义,可能会由于出现变量递归定义而导致make陷入到无限的变量展开过程中,最终使make执行失败. 

查看完整回答
反对 回复 2019-04-13
  • 4 回答
  • 0 关注
  • 842 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信