【ASM C/C++】 Makefile 规则说明
make 命令会自动读取当前目录下的 Makefile 文件[31],完成相应的编译步骤。Makefile 由一组规则(Rule)组成,每条规则的格式是:
target ... : prerequisites ...
command1
command2
...
目标和条件之间的关系是:欲更新目标,必须 首先更新它的所有条件;所有条件中只要有一个条件被更新了,目标也必须随 之被更新。所谓“更新”就是执行一遍规则中的命令列表,命令列表中的每条 命令必须以一个 Tab 开头,注意不能是空格,Makefile 的格式不像 C 语言的缩 进那么随意,对于 Makefile 中的每个以 Tab 开头的命令,make 会创建一个 Shell 进程去执行它。
• 目标没有生成。
• 某个条件需要更新。
• 某个条件的修改时间比目标晚。
clean 目标是一个约定俗成的名字,在所有软件项目的 Makefile 中都表示清 除编译生成的文件,类似这样的约定俗成的目标名字有:
• all,执行主要的编译工作,通常用作缺省目标。
• install,执行编译后的安装工作,把可执行文件、配置文件、文档等
分别拷到不同的安装目录。
• clean,删除编译生成的二进制文件。
• distclean,不仅删除编译生成的二进制文件,也删除其它生成的文
件,例如配置文件和格式转换后的文档,执行 make distclean 之后 应该清除所有这些文件,只留下源文件。
变量:
#定义变量
PROJECT = test_projet
#变量追加值
PROJECT += $(AUTHOR)
#立即展开的变量
AUTHOR := A Been
• $@,表示规则中的目标。
• $<,表示规则中的第一个条件。
• $?,表示规则中所有比目标新的条件,组成一个列表,以空格分隔。
• $^,表示规则中的所有条件,组成一个列表,以空格分隔。
示例:
all: main
main: test.c
gcc test.c
clean:
@echo cleanning $(PROJECT) project
-rm *.out
@echo clean completed
install:
@echo install project
@echo install completed
.PHONY: clean
#定义变量
PROJECT = test_projet
#变量追加值
PROJECT += $(AUTHOR)
#立即展开的变量
AUTHOR := A Been
【ASM C/C++】 Makefile 规则说明的更多相关文章
- Makefile 规则的使用
1.Makefile格式 //最终目标 all: led.o //依赖 arm-linux-ld -Tled.lds -o led.elf led.o //命令 arm-linux-objcopy - ...
- Makefile规则③规则语法、依赖、通配符、目录搜寻、目标
规则语法 通常规则的语法格式如下: TARGETS : PREREQUISITES COMMAND ... 或者: TARGETS : PREREQUISITES ; COMMAND COMMAND ...
- 编写Makefile规则
一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作 ...
- makefile规则整理
makefile规则整理 实际开发中,makefile改的多,写的少. 为了后面不要在编译链接这种地方花费太多的时间,在这里系统性的整理其规则: 基本格式 TARGET : PREREQUISITES ...
- 自动构建Makefile(1)--C/C++编译流程&Makefile规则简介
前言: 大家在Windows上使用VS构建C/C++程序时,不需要自己编辑略显晦涩的Makefile文件,而对于初学者而言, 他们甚至没意识到它的存在.VS是自动生成Makefile文件, 并构建 ...
- makefile复习时发现的编写makefile规则注意事项
博客中关于makefile的博文数不胜数,比较经典的都很相似,下面这一片,很全面,只是很长,可以作为参考资料:http://blog.csdn.net/liang13664759/article/de ...
- makefile笔记3 - makefile规则
target ... : prerequisites ... command ... ... 规则包含两个部分,一个是依赖关系,一个是生成目标的方法. 在 Makefile 中,规则的顺序是很重要的, ...
- Makefile规则介绍
Makefile 一个规则 三要素:目标,依赖,命令 目标:依赖 命令 1.第一条规则是用来生成终极目标的规则 如果规则中的依赖不存在,向下寻找其他的规则 更新机制:比较的是目标文件和 ...
- make的使用和Makefile规则和编程及其基本命令(简单)
转自:http://blog.chinaunix.net/uid-23929712-id-2650328.html 概述: make从Makefile中文件中获取模块间的依赖关系,判断哪些文件 ...
随机推荐
- 企业app分发
http://beyondvincent.com/2014/07/30/2014-07-30-provision-ios-ipa-app-for-in-house-enterprise-distrib ...
- C++ Windows 下 根据进程名获取进程ID 以及该进程下所有窗口的句柄
#include <windows.h> #include <stdint.h> #include <tlhelp32.h> #include <stdio. ...
- 针对功能权限(url访问)如何避免越权访问
你可以用request获得之前的页面路径:Request.getHeader("Referer");然后你可以判断一下,这个是字符串类型的. 如果是需要登录的,你可以从sessio ...
- FTPClient.listFiles()不能获取文件
今天使用ftp获取另一台服务器上的文件,发现不管切换到哪个目录,获取什么文件,调用FTPClient.listFiles()方法时返回的始终为空,但是代码又运行正常没有异常抛出. 网上查了下,发现有很 ...
- web app 自适应方案总结 关键字 弹性布局之rem
关于rem,主要参考文档 1.腾讯ISUX (http://isux.tencent.com/web-app-rem.html) 2.http://www.w3cplus.com/css3/defin ...
- WINDOWS下PhoneGap(Cordova)安装笔记
1.首先下载Node.js 安装nodejs很简单直接点击安装文件下一步直至成功即可,安装notejs的同时npm也会同时安装 成功后打开notejs的命令行工具 输入“node -v”," ...
- sparksql---通过pyspark实现
上次在spark的一个群里面,众大神议论:dataset会取代rdd么? 大神1:听说之后的mlib都会用dataset来实现,呜呜,rdd要狗带 大神2:dataset主要是用来实现sql的,跟ml ...
- springmvc 动态代理 JDK实现与模拟JDK纯手写实现。
首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用 ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Pr ...
- DER input, Integer tag error的异常处理
1.首先我向大家介绍一下我做的东西,发生这个异常的情况. 我做的是一个电签的系统,在调用某公司的API生成证书,然后与安证通进行同步证书的任务. 2.问题具体的异常 具体异常如下: 2016/08/2 ...
- java 读写文件
1. 读文件 import java.io.*; import java.util.*; public class test { public void test_readfile(String fi ...