`
nuthell
  • 浏览: 30459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Makefile学习

阅读更多
最近学习,Erlang设计到application打包发布时,附带Makefile的编译部署文件。

这玩意,是linux软件包的必备文件。

查找资料学习一下,并简记不懂之处。

变量:

1

先看第一种方式,也就是简单的使用“=”号,在“=”左侧是变量,右侧是变量的值,右侧变量的值可以定义在文件的任何一处,也就是说,右侧中的变量不一定非要是已定义好的值,其也可以使用后面定义的值。如:

foo = $(bar)
bar = $(ugh)
ugh = Huh?

all:
echo $(foo)

2
我们可以使用make中的另一种用变量来定义变量的方法。这种方法使用的是“:=”操作符,如:

x := foo
y := $(x) bar
x := later

其等价于:

y := foo bar
x := later

值得一提的是,这种方法,前面的变量不能使用后面的变量,只能使用前面已定义好了的变量。如果是这样:

y := $(x) bar
x := foo

那么,y的值是“bar”,而不是“foo bar”。

3
追加变量值,我们可以使用“+=”操作符给变量追加值,如:

objects = main.o foo.o bar.o utils.o
objects += another.o

于是,我们的$(objects)值变成:“main.o foo.o bar.o utils.o another.o”(another.o被追加进去了)

使用“+=”操作符,可以模拟为下面的这种例子:

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

所不同的是,用“+=”更为简洁。

4
前面我们所讲的在Makefile中定义的变量都是“全局变量”,在整个文件,我们都可以访问这些变量。当然,“自动化变量”除外,如“$<”等这种类量的自动化变量就属于“规则型变量”,这种变量的值依赖于规则的目标和依赖目标的定义。

当然,我样同样可以为某个目标设置局部变量,这种变量被称为“Target-specific Variable”,它可以和“全局变量”同名,因为它的作用范围只在这条规则以及连带规则中,所以其值也只在作用范围内有效。而不会影响规则链以外的全局变量的值。

其语法是:

<target ...> : <variable-assignment>

<target ...> : overide <variable-assignment>
分享到:
评论

相关推荐

    Makefile学习参考资料.zip

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

    不错的makefile学习资料,很全面

    Makefile学习资料总结 Makefile是 Unix/Linux 环境下的一个非常重要的编译命令,它可以将大型的开发项目分解成为多个更易于管理的模块,帮助开发者管理项目-development-cycle。Makefile 文件是 Make 工具最主要也...

    makefile 学习手册

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

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

    《跟我一起写makefile》和《gnumakefile》是两本关于makefile的重要学习资料,它们涵盖了构建自动化工具make的使用、配置以及优化等多个方面。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学习三件套 电子书

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

    make以及makefile学习

    以下详细阐述了make以及makefile的学习要点: 1. Makefile概述 Makefile是一个脚本文件,其中包含了编译和链接项目所需的各种规则。它描述了项目中哪些文件需要先编译,哪些文件需要后编译,哪些文件依赖于其他文件...

    Makefile学习笔记.docx

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

    Makefile学习教程.txt

    ### Makefile 学习教程知识点总结 #### 一、Makefile 概述 **Makefile** 是一种自动化构建工具,在软件开发过程中极为常见,尤其是在 C 和 C++ 的项目中。它能够通过定义一系列规则来自动编译源代码,并管理整个...

    Makefile学习资料.rar

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

    makefile学习参考资料,仅供学习使用

    Makefile学习参考资料 Makefile是Linux系统中的一个构建 Automation 工具,它可以自动地编译、链接和构建项目。Makefile文件中定义了一系列的规则来指定哪些文件需要先编译,那些文件需译,那些文件需要重新编译,...

    GNU makefile学习资料

    ### GNU Makefile 学习资料知识点汇总 #### 第一章:概述 - **1.1 概述**:本节简要介绍了Makefile在软件构建流程中的重要性及其基本概念。Makefile是一种脚本文件,它告诉构建工具如何构建程序。在Linux环境下,...

    makefile学习用测试文件.rar

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

    makefile学习

    【Makefile学习】Makefile是构建程序的关键工具,它定义了项目中所有文件的编译规则,确保在适当的时候更新目标文件。在大型项目中,源文件可能分散在多个目录中,通过Makefile,我们可以清晰地指定哪些文件需要先...

    linux的Makefile学习手册

    【Linux的Makefile学习手册】 Makefile是Unix和类Unix操作系统中用于自动化构建、编译和链接程序的重要工具。在Windows环境下,IDE如Visual Studio通常会自动处理这些任务,但在Linux下,程序员需要手动编写...

    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学习教程 不错推荐

    Makefile是Unix/Linux环境下自动化构建、编译和测试软件项目的工具,它定义了一系列规则来指示编译器如何构建应用...现在,你可以下载"makefile学习教程.pdf",开始你的Makefile学习之旅,进一步提升你的软件构建技能。

Global site tag (gtag.js) - Google Analytics