`
test_angel
  • 浏览: 51678 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

Makefile学习(3)

 
阅读更多

今天就学学有关makefile中有关变量的内容(这周偷懒偷懒, 内容比较少)。

 

1.变量的使用:

  •  变量的命名规则:数字字母下划线,但是不应该含有“:  #  = ”或者空字符(空格、回车等)
  •                                 变量的大小写敏感
  •  变量在声明时需要付初值,在使用时需要在变量名前加上$符号,最好使用()或者{}将变量给包括起来。
  •  如果需要使用真实的$,那么你需要使用$$表示


2.变量赋值(=       :=     ?=   =+)

 

 

  • “=”:

左侧是变量,右侧是变量的值,右侧变量的值可以定义在文件的任何一处,也就是说,在右侧变量中不一定非要使用已定义好的值,其也可以使用后面定义的值。
eg
foo=$(bar)
bar=$(ugh)
ugh=Huh?
all:
   echo $(foo)

当我们执行 make all 将会打印出变量$(foo)的值“Huh?”

  • “:=”:

左侧是变量,右侧是变量的值,右侧变量的值只能定义在前面
eg
x:=foo
y:=$(x) bar

如果写成下面的样子:
y:=$(x) bar
x:=foo

那么y值只是  bar  而不是  foo  bar

  • ?=

FOO?=bar
其含义是:如果变量FOO没有被定义过,那么变量FOO的值就是bar,如果FOO定义过了,则这条语句什么都不做。等价于
ifeq($(origin FOO),undefined)
    FOO=bar
endif

变量的值作为变量
eg
x=y
y=z
z=u
a:=$($($(x)))

过程如下:
$(x)值y
将y作为变量
$(y)值z
将z作为变量
$(z)值u
所以
S(a)的值为u

复杂一点的例子:
first_second=Hello
a=first
b=second
all=$($a_$b)
过程如下:
$a:first
$b:second
所以
$a_$b组成“first_second”
故$all值为Hello

  • 追加变量

操作符:+=
eg.
objects=main.o  foo.o  bar.o
objects+=another.o
那么$(objects)值为:main.o  foo.o  bar.o  another.o

等价于

objects=main.o  foo.o  bar.o
objects:=$(objects) another.o

注:
如果变量之前没有被定义过,则+=会自动变成=

分享到:
评论

相关推荐

    makefile学习手册集合包括《跟我一起写makefile》《gnumakefile》

    《跟我一起写makefile》和《gnumakefile》是两本关于makefile的重要学习资料,它们涵盖了构建自动化工具make的使用、配置以及优化等多个方面。makefile是软件开发中的核心部分,它允许开发者通过简洁的规则定义来...

    Makefile学习参考资料.zip

    这个压缩包“Makefile学习参考资料.zip”包含了两份PDF文档,分别是“跟我一起学Makefile.pdf”和“gun_make.pdf”,很可能是关于Makefile的基础教程和GNU Make的官方文档。 在Makefile中,最重要的概念是目标...

    make以及makefile学习

    3. Makefile的基本规则 Makefile的基本规则格式为:目标(target):依赖(dependencies),命令(commands)。其中,“目标”通常是最终生成的文件名,“依赖”是用于生成目标所需的文件,“命令”是实际执行的命令,用于...

    Makefile学习

    学习Makefile不仅是掌握其语法,更重要的是理解其背后的编译和链接机制。通过合理组织Makefile,可以高效地管理和自动化复杂的构建过程。对于程序员来说,了解Makefile是走向专业化的必经之路。特别是当涉及到跨平台...

    makefile 学习手册

    《Makefile学习手册》是一本专门针对Makefile开发的详细指南,旨在帮助读者从基础到深入地理解并掌握这一强大的构建工具。Makefile是软件工程中用于自动化编译和链接过程的重要文件,尤其在Unix/Linux环境中广泛使用...

    makefile学习三件套 电子书

    《makefile学习三件套 电子书》是一个针对makefile技术的综合学习资源,它包含了三个核心部分:《gnu make》、《GNU make中文手册》和《跟我一起写Makefile》。这些文档旨在帮助读者深入理解和掌握makefile的编写与...

    Make工具及makefile规则学习

    ### Make工具及makefile规则学习 #### 一、Make工具的功能 Make工具是一种自动化构建工具,主要用于管理和构建大型软件项目。其主要功能包括: - **避免不必要的重复编译**:通过检查文件的时间戳来确定哪些文件...

    Makefile学习资料.rar

    Makefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料.rarMakefile学习资料....

    Makefile 中文教程.pdf

    * 学习曲线陡峭:Makefile 的语法非常复杂,需要花费一些时间来学习和掌握。 * 不好 debug:Makefile 的错误信息不够明确, debug 相对困难。 Makefile 是一个功能强大且灵活的自动化编译工具,在软件开发过程中...

    Makefile学习笔记.docx

    Makefile学习笔记 Makefile是一个编译系统自动构建工具,它可以根据源文件的变化自动编译和链接对象文件,并生成执行文件。Makefile文件包含了一系列的规则和命令,这些规则和命令描述了如何从源文件生成目标文件。...

    Makefile学习教程: 跟我一起写 Makefile

    Makefile学习教程: 跟我一起写 Makefile 0 Makefile概述 0.1 关于程序的编译和链接 1 Makefile 介绍 1.1 Makefile的规则 1.2 一个示例 1.3 make是如何工作的 1.4 makefile中使用变量 1.5 让make自动推导 ...

    makefile学习资料.

    make中文手册等 小测试: # Readme: # use: make config # use: make dir # use: make # use: make clean # use: make rebuild # use: make cleanall # use: make test # use: make

    makefile 学习pdf

    压缩包中的三份PDF文件分别对应以上三本书的内容,它们构成了一个完整的makefile学习资源库。首先,你可以通过《跟我一起写makefile》快速入门,了解makefile的基本构造和使用。然后,深入研究GNU Make Manual,掌握...

    Makefile教程,Makefile快速学习资料

    标题中提到的“Makefile教程”是指关于Makefile的学习资料,而“Makefile快速学习资料”说明本资料是为快速掌握Makefile编写的入门级教程。Makefile是Unix系统中的一个工具程序,主要用于软件开发中的自动化编译。它...

    makefile编写,学习linux c编程的必备

    通过学习和理解`makefile`,程序员不仅可以更好地组织和管理代码,还能提升大型项目的构建效率,这对于成为一名专业的Linux C程序员来说是必不可少的技能。因此,深入学习`makefile`的编写规则和实践是每个Linux C...

    makefile学习用测试文件.rar

    这个`makefile学习用测试文件.rar`很显然是为了帮助初学者理解和掌握`Makefile`的基本概念和用法。在本文中,我们将深入探讨`Makefile`的主要组成部分,以及如何编写和使用它来编译和管理项目。 `Makefile`的核心...

    makefile示例程序,学习用

    总结来说,这个“makefile示例程序”是一个很好的学习资源,通过它你可以掌握如何编写和使用Makefile来自动化构建项目,提高开发效率。在实际工作中,无论是小型的个人项目还是大型的团队协作,Makefile都是一个不可...

Global site tag (gtag.js) - Google Analytics