makefile之override
override指示符
通常在执行 make 时,如果通过命令行定义了一个变量,那么它将替代在 Makefile中出现的同名变量的定义。
就是说,对于一个在 Makefile 中使用常规方式(使用“=”、“:=”或者“define”)定义的变量,我们可以在执行 make 时通过命令行方式重新指定这个变量的值,命令行指定的值将替代出现在 Makefile 中此变量的值。
如果不希望命令行指定的变量值替代在 Makefile 中的变量定义,那么我们需要在 Makefile 中使用指示符“override”来对这个变量进行声明。
override作用
- 保护makefile中定义的变量的值;
- 提供一种在makefile中增加或者修改命令行参数的方式;
实际情况下,我们经常会有这种需求:通过命令行指定一些附加的参数选项,对于一些通用的参数选项在makefile中指定.
1 保护makefile中定义变量值示例
1.1 没有使用override的情况
make命令行指定的变量值将会覆盖makefile中定义的同名的变量值
SRCS := A.c B.c C.c
all:
@echo "SRCS: " $(SRCS)
1.2 使用override的情况
make命令行指定的变量值将不会覆盖makefile中定义的同名的变量值,所以override有保护makefile中变量值不被命令行参数修改的作用。
override SRCS := A.c B.c C.c
all:
@echo "SRCS: " $(SRCS)
2 修改makefile中定义变量值的示例
#使用override进行追加的变量的原来指定的值不会被命令行参数覆盖,而且会追加命令行指定的值
override CFLAGS += -g
all:
@echo $(CFLAGS)
makefile之override的更多相关文章
- Makefile的学习笔记
Makefile的学习笔记 标签: makefilewildcard扩展includeshellfile 2012-01-03 00:07 9586人阅读 评论(2) 收藏 举报 分类: Linux ...
- 嵌入式Linux-GNU Make 使用手册(中译版)
GNU Make 使用手册(中译版) 翻译:于凤昌 译者注:本人在阅读Linux源代码过程中发现如果要全面了解Linux的结构.理解Linux的编程总体设计及思想必须首先全部读通Linux源代码中各级 ...
- RVCT的Linux环境变量配置 ARM® RVDS™ 4.1(b713)
下载解压 armrvds.tar.gz到/opt 下 在自己的build.sh下导入RVCT的环境变量配置ARM® RVDS™4.1(b713): export ARMROOT=/opt/armrvd ...
- Compiling OpenGL games with the Flash C Compiler (FlasCC)
Compiling OpenGL games with the Flash C Compiler (FlasCC) In this article I show how to use the Flas ...
- Java高并发系列——检视阅读
Java高并发系列--检视阅读 参考 java高并发系列 liaoxuefeng Java教程 CompletableFuture AQS原理没讲,需要找资料补充. JUC中常见的集合原来没讲,比如C ...
- 关于makefile中变量的多次赋值以及override指令
1 基本原则如下 1.1 原则1 变量的普通赋值是有先后顺序的,后面的赋值会覆盖掉前面的赋值. 1.2 原则2 使用的时候,用的是其前面最后的赋值,就算其后面有使用了override指令的赋值也不会影 ...
- 怎么写makefile?(转)
跟我一起写 Makefile 陈皓 第一章.概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 pr ...
- 【转】Linux makefile 教程 非常详细,且易懂
From: http://blog.csdn.net/liang13664759/article/details/1771246 最近在学习Linux下的C编程,买了一本叫<Linux环境下的C ...
- linux内核的makefile.txt讲解
linux内核的linux-3.6.5\Documentation\kbuild\makefiles.txt Linux Kernel Makefiles This document describe ...
随机推荐
- [Android Pro] android 杀死进程的方法
1: 杀死自己进程的方法 android.os.Process.killProcess(Process.myPid()); 2:杀死别人进程的方法(不能杀死自己) -------a: activity ...
- Python爬虫(3)豆瓣登录
前面(1)(2)的内容已经足够爬虫如链家网之类的不需要登录可以直接获取数据的网站. 而要爬取社交网站比较鲜明的特点就是需要登录,否则很多东西都无法获取.经过测试发现,微博,知乎都不是很好登录,知乎有时 ...
- java设计模式1--工厂方法模式(Factory Method)
本文地址:http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html,转载请注明源地址. 工厂方法模式(别名:虚拟构造) ...
- TestNG的组測试和组中组測试
在编写測试的过程中,我们常常遇到仅仅想运行个别或者某一部分/某一类型的測试用例,这时我们能够使用TestNG的分组測试方法 分组測试在配置时.TestNG运行的原则是:仅仅保留最小集合进行运行 看代码 ...
- tomcat控制台启动成功但是却访问不了主页
从杭州来京出差,也许是因为春节将至,也或许是由于携带的一点点小情绪致使自己丧失了理智,So 那就开始吧.............北京有些地方也不错的. 需要帮同事在客户这边搭建一个Java proje ...
- tomcat部署java web项目遇到的一些小问题
背景:本人不是Java开发人员,经过四年多的历练,可以说是一枚BI攻城师了吧,最近粗糙的写了一个Portal来集成cognos报表,下面就入正题说一下发布过程中遇到的小问题吧. a:前提:Java w ...
- Keepalived+Nginx实现高可用和双主节点负载均衡
简介 Nginx可以实现高并发反向代理,lvs集群可以实现负载均衡,但是他们都有一个共同的弊端,就是Nginx,lvs架构中Director是单点故障,有没有一个好的方案解决这个问题呢?答案是有.通过 ...
- C++ 声明与引用
任何一个技术或者知识点,都是为了解决某个问题.也就是都有他的使用场景,或者说为什么搞出这种技术. 1.解决的问题:现实生活中的例子,要使用一个工具,必要把工具放在这里,或者说我有这个工具.工具只能放在 ...
- 黑马程序员_<<TCP>>
---------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1. TCP/IP 1.概述 要建立连接, ...
- ssh 安装笔记
debian 6.0 的一台32位机器,aptitude search openssh-server-x509 没结果(其他机同样源配置是有结果的),于是上内部源下载openssh-server-x5 ...