`
java-mans
  • 浏览: 11342648 次
文章分类
社区版块
存档分类
最新评论

make的简单使用规则

 
阅读更多

make的使用

1.make基本使用规则

make在使用时可以根据一系列预先设定的规则来运行。这些设定的规则可以记录在一个文件中,默认该文件的名字是Makefile。

make的使用形式为:

make [option] [macrodef] [target]

option指出make的工作行为,make的主要选项有:

-c dir make在开始运行后的工作目录为指定目录

-f filename 使用指定的文件作Makefile

在make运行时,会向屏幕输出一些信息。为了记录这些信息,可以使用如下命令:

make file > errofile

这样错误信息就都写入了errofile,可以使用编辑软件查看。

2.Makefile的基本书写规则

make运行时,主要根据规则文件中记录的规则来判断是否对文件进行更新。例如,工程newos依赖于main.o, f1.o, f2,而main.o依赖于main.c和main.h, f1.o依赖于f1.c和f1.h,f2.o依赖于f2.c。

下面是一个newos工程的Makefile

newos:main.o f1.o f2.o

gcc -o example main.o f1.o, f2.o

mian.o: main.c main.h

gcc -c main.c

f1.o: f1.c f1.h

gcc -c f1.c

f2.o:f2.c

gcc -c f2.c

以上是一个简单的Makefile文件,make除了上述的简单的功能外,make还有大量高级功能,例如属性变量,宏变量,流程控制等,

3 宏的使用

在make中宏的命名可以是任意数字、字母和下划线的组合,不过不能用数字开头。make中宏的定义方式有3中:

=:直接将后面的字符串赋给宏

=:后面跟字符串常量,将它的值赋给宏

+=:宏原来的值加上一个空格,将它的内容赋给宏

宏的引用格式有两种:$(宏名)或${宏名}。宏名也可以嵌套使用,如:

name2 = uestc

index = 2

在Makefile中调用$(name$(index)),就等于调用uestc。

在make中也可以使用shell 环境的宏,不需要重新定义,只要用IMPORT就行了。

分享到:
评论

相关推荐

    GNU MAKE 中文手册

    第十一章:使用make更新静态库文件 11.1 库成员作为目标 11.2 静态库的更新 11.2.1 更新静态库的符号索引表 11.3 make静态库的注意事项 11.4 静态库的后缀规则 第十二章 : GNU make的特点 12.1 源自System v...

    GNU make中文手册

    第十一章:使用make更新静态库文件 11.1 库成员作为目标 11.2 静态库的更新 11.2.1 更新静态库的符号索引表 11.3 make静态库的注意事项 11.4 静态库的后缀规则 第十二章 : GNU make的特点 12.1 源自System v的特点 ...

    GNU make 中文手册 网页版

    第十一章:使用make更新静态库文件 11.1 库成员作为目标 11.2 静态库的更新 11.2.1 更新静态库的符号索引表 11.3 make静态库的注意事项 11.4 静态库的后缀规则 第十二章 : GNU make的特点 12.1 源自System v...

    Gun make中文手冊

    作为一个Linux程序员,make工具的使用以及编写Makefile是必需的 目 录 第一章:概述 1.1 概述 1.2 准备知识 第二章:GNU make 介绍 2.1 Makefile简介 2.2 Makefile规则介绍 2.3 简单的示例 2.4 make如何...

    GNU Make 使用手册(中译版)

    GNU Make 使用手册(中译版) 目录 1 make 概述 1.1 怎样阅读本手册 1.2 问题和BUG 2 Makefile 文件介绍 2.1 规则的格式 2.2 一个简单的Makefile 文件 2.3make 处理Makefile 文件的过程 2.4 使用变量简化Makefile ...

    【推荐】GNU make中文手册

    目录如下: 第一章:概述 1.1 概述 1.2 准备知识 第二章:GNU make 介绍 2.1 Makefile简介 2.2 Makefile规则介绍 2.3 简单的示例 2.4 make如何工作 2.5 指定变量 2.6 自动推导规则...

    4、make工具使用(makefile) – 零基础 到 通用makefile,看这一篇就够了!

    目录四、make工具使用(makefile)1、Makefile2、Makefile基本规则3、最简单的Makefile例子4、make是如何工作的5、Makefile使用伪目标6、makefile中使用变量7、make自动推导8、Makefile中常见函数9、多级目录Makefile...

    万能makefile写法详解,一步一步写一个实用的makefile

    本例使用了makefile的模式规则,目的是对当前目录下每个.c文件,生成其对应的.d文件,例如由main.c生成的.d文件内容为: main.o : main.c command.h 这里指示了main.o目标依赖于哪几个源文件,我们只要把这一行的...

    gnu_makefile文档pdf html

    5 在规则中使用命令 5.1命令回显 5.2执行命令 5.3并行执行 5.4命令错误 5.5中断或关闭make 5.6递归调用make 5.6.1变量MAKE的工作方式 5.6.2与子make通讯的变量 5.6.3与子make通讯的选项 5.6.4`--print-...

    Linux-C++开发环境简介

    Linux开发学习入门文档,简单介绍了在Linux系统用C++进行编程开发的常用工具和一般步骤,包括:编译工具g++、gcc、Make和调试工具gdb,重点介绍了Make的使用方法。Make是GNU/Linux的主要开发工具,本文主要介绍了...

    make-for-reproducible-data-analysis

    如何将工作流程分解为离散的步骤使用Make编写可重现,增量更新的数据分析管道如何使用宏(变量)使Makefile更具可维护性且减少重复性如何使用模式规则使Makefile更加强大和减少重复如何通过并行执行来加速管道如何...

    iniparser:ini文件解析器

    Iniparser 4我-概述该模块... 您也应该考虑尝试以下规则: make check :运行单一测试make example :编译示例,使用./example/iniexample运行III-牌照该软件是根据MIT许可发布的。 有关完整信息,请参见许可IV-版本当

    cmake学习终结文档

    cmake 是一个跨平台的自动构建工具,里面导语部分也已经给大家介绍了,cmake 主要是为了解决直接使用make+Makefile 这种方式无法实现跨平台的问题,所以 cmake 是可以实现跨平台的编译工具,这是它最大的特点,当然...

    CC++ 通用 Makefile

    在使用 Makefile 之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile。因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序...

    Makefile模板文件

    在使用 Makefile 之前,只需对它进行一些简单的设置即可;而且一经设置,即使以后对源程序文件有所增减一般也不再需要改动 Makefile。因此,即便是一个没有学习过 Makefile 书写规则的人,也可以为自己的 C/C++ 程序...

    java8看不到源码-serverplop:服务器安装包和修复

    developer是以下make规则的bundle make规则: 灯 工具 语言环境 调试 phpunit phpsh 代码嗅探器 禅 网络研磨 多氧 JavaScript 开发人员 $ make js-developer 制定规则: 节点 正方形 工具 前端开发人员 $ make ...

    跟我一起学写makefile

    而 make 就会根据 Makefile 的规则 来决定如何编译 (compile) 和连结 (link) 程式。实际上,make 可做的 不只是编译和连结程式,例如 FreeBSD 的 port collection 中, Makefile 还可以做到自动下载原始程式套件...

Global site tag (gtag.js) - Google Analytics