makefile的两个变量(自动变量和普通变量)
(1)普通变量
如:
obj=main.o add.o sub.o mul.o div.o //将后面的值赋值给obj,obj就是一个普通变量
target=zsx //将zsx赋值给target
makefile中已经定义的一些普通变量(通常格式都是大写,类似环境变量,它们都是普通变量,直接赋值即可,任意类型皆可):CC,其值为gcc或cc(cc就是gcc,完全等价),且用户还可以修改这些值。
(2)自动变量
$<: 规则中的第一个依赖 $@: 规则中的目标 $^: 规则中的所有依赖
注意:这些变量只能在规则的命令中使用
(3)举例
则通过使用自动变量和普通变量,可以简化makefile的书写,下面举例说明。依然使用上篇的文章的例子。
[root@localhost src]# vim makefile
obj=main.o add.o sub.o mul.o div.o //普通变量
target=zsx //普通变量
$(target):$(obj)
$(CC) -ggdb3 $^ -o $@ //自动变量只能使用在命令中
main.o:main.c
$(CC) -pedantic -pipe -Wall -c $^ -o $@ -I ../include //单独拿出来 是因为其需要指明头文件,而头文件在另一个目录中
%.o:%.c
$(CC) -pedantic -pipe -Wall -c $< -o $@
[root@localhost src]# ls
add.c div.c main.c makefile mul.c sub.c
[root@localhost src]# make
cc -pedantic -pipe -Wall -c main.c -o main.o -I ../include
cc -pedantic -pipe -Wall -c add.c -o add.o
cc -pedantic -pipe -Wall -c sub.c -o sub.o
cc -pedantic -pipe -Wall -c mul.c -o mul.o
cc -pedantic -pipe -Wall -c div.c -o div.o
cc -ggdb3 main.o add.o sub.o mul.o div.o -o zsx
[root@localhost src]# ls
add.c add.o div.c div.o main.c main.o makefile mul.c mul.o sub.c sub.o zsx
[root@localhost src]# ./zsx
sum = 26
makefile的两个变量(自动变量和普通变量)相关推荐
- php如何拼接变量名,php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符...
php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符 方式一:使用花括号,前缀部分不需要用单引号 $nums10 = 100; $xxx*${bcount.$nums10}['m54'] ...
- Dubbo(七)之自动加载环境变量
转载自 自动加载环境变量 在 Dubbo 中自动加载环境变量 从 2.7.3 版本开始,Dubbo 会自动从约定 key 中读取配置,并将配置以 Key-Value 的形式写入到URL中. 支持的 ...
- 【Makefile由浅入深完全学习记录5】预定义变量的使用
今天学习Makefile预定义变量的使用,加qq:1126137994.微信:liu1126137994一起学习更多技术!!! 1.预定义变量:自动变量 在Makefile中存在一些预定义过的变量,我 ...
- 一键安装JDK和JRE并自动配置Java环境变量
一键安装JDK和JRE并自动配置Java环境变量 问题描述: 那天装完ctex(CTeX_2.9.2.164),之后在命令行下运行和编译Java文件提示没有Java环境,查看环境变量后发现系统变量 p ...
- Scala——(常用类型与字面量,Scala类层次结构,值与变量自动类型推断,操作符,块表达式和赋值语句,输出和输出,字符串插值器,对象相等性)
文章目录 常用类型与字面量 Scala类层次结构 值与变量&自动类型推断 操作符 块表达式和赋值语句 输出和输出 字符串插值器 对象相等性 常用类型与字面量 Scala和Java一样,有8种数 ...
- ipython具备变量自动补全的功能吗_Ipython
ipython介绍 ipython是一个python交互式shell,比默认的python shell很多,支持变量自动补全,自动缩进,支持bash shell命令.ipython也是利用python ...
- 【C语言必经之路——第1节】自动变量(auto)外部变量(extern)静态变量(static)寄存器变量(register)
目录 一.auto变量 二.extern变量 三.static变量 static的作用为: 1.修饰全局变量 2.修饰局部变量 3.修饰函数 四.register变量 一.auto变量 若定义一个局部 ...
- 编程题:两个数比较大小,之后用变量t互换。
编程题:两个数比较大小,之后用变量t互换. #include<stdio.h> void main() { float x,y,t; scanf("%f,%f",&am ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )
文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...
- 一键安装JDK和自动配置Java环境变量
新建一个Txt文档,在里面输入下面的内容: @echo off cls color 2f echo. echo ******************************************** ...
最新文章
- 基于OpenCV之视频读取,处理和显示框架的搭建(一)
- PMBOK项目管理PMI主义\IPMA概述
- XMLHttpRepuest2
- maven netty 配置_SpringBoot整合Netty(附源码)
- oracle数据库常用关键字以及写法
- hadoop的开发工具_Hadoop开发工具简介
- 信息学奥赛一本通(1065:奇数求和)
- REUSE_ALV_GRID_DISPLAY显示ALV,设置可编辑时,与内表数据同步问题
- 剑指offer51 构建乘积数组(图解)
- 【BZOJ2938】病毒,AC自动机练习
- java 用properties文件配置spring数据源,用spring的JdbcTemplate的queryForList查数据
- Android基础 写给新手的Android环境配置
- [转载] 【RTTmicropython教程】玩转 Web 服务器
- matlab画图入门教程
- Win 10间歇性卡顿问题
- window下mysql免安装版教程大全
- 使用CCHttpClient进行cocos2d-x网络编程
- 2019网红带货电商新趋势,与传统电商说再见-云秀传媒
- 固态硬盘寿命不长?!快来看看12个固态硬盘优化技巧
- python的简单使用_用python简单处理图片
热门文章
- 随机森林和gbdt结合_决策树与迭代决策树(GBDT)
- activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...
- android服务下载,android服务之bindService和unService中下载任务中的应用
- php 查询and or,php – SQL查询多个AND和OR不起作用
- java编译找不到符号_关于久违的Javac,编译出现“找不到符号”
- mongo 唯一约束索引_快速掌握mongoDB(三)——mongoDB的索引详解
- 负数的 %求余和取模
- 美国计算机工程专业,美国计算机工程专业哪些学校比较好
- mysql 检查点_my05_mysql检查点简述
- pygame只能编写游戏_游戏框架搭建