(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的两个变量(自动变量和普通变量)相关推荐

  1. php如何拼接变量名,php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符...

    php动态拼接变量名,可变变量,动态变量,使用花括号,使用两个$符 方式一:使用花括号,前缀部分不需要用单引号 $nums10 = 100; $xxx*${bcount.$nums10}['m54'] ...

  2. Dubbo(七)之自动加载环境变量

    转载自  自动加载环境变量 在 Dubbo 中自动加载环境变量 从 2.7.3 版本开始,Dubbo 会自动从约定 key 中读取配置,并将配置以 Key-Value 的形式写入到URL中. 支持的 ...

  3. 【Makefile由浅入深完全学习记录5】预定义变量的使用

    今天学习Makefile预定义变量的使用,加qq:1126137994.微信:liu1126137994一起学习更多技术!!! 1.预定义变量:自动变量 在Makefile中存在一些预定义过的变量,我 ...

  4. 一键安装JDK和JRE并自动配置Java环境变量

    一键安装JDK和JRE并自动配置Java环境变量 问题描述: 那天装完ctex(CTeX_2.9.2.164),之后在命令行下运行和编译Java文件提示没有Java环境,查看环境变量后发现系统变量 p ...

  5. Scala——(常用类型与字面量,Scala类层次结构,值与变量自动类型推断,操作符,块表达式和赋值语句,输出和输出,字符串插值器,对象相等性)

    文章目录 常用类型与字面量 Scala类层次结构 值与变量&自动类型推断 操作符 块表达式和赋值语句 输出和输出 字符串插值器 对象相等性 常用类型与字面量 Scala和Java一样,有8种数 ...

  6. ipython具备变量自动补全的功能吗_Ipython

    ipython介绍 ipython是一个python交互式shell,比默认的python shell很多,支持变量自动补全,自动缩进,支持bash shell命令.ipython也是利用python ...

  7. 【C语言必经之路——第1节】自动变量(auto)外部变量(extern)静态变量(static)寄存器变量(register)

    目录 一.auto变量 二.extern变量 三.static变量 static的作用为: 1.修饰全局变量 2.修饰局部变量 3.修饰函数 四.register变量 一.auto变量 若定义一个局部 ...

  8. 编程题:两个数比较大小,之后用变量t互换。

    编程题:两个数比较大小,之后用变量t互换. #include<stdio.h> void main() { float x,y,t; scanf("%f,%f",&am ...

  9. 【Groovy】Groovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )

    文章目录 前言 一.Groovy 动态语言 二.Groovy 中的变量自动类型推断及动态调用 三.Java 中必须为变量指定其类型 前言 Groovy 是动态语言 , Java 是静态语言 ; 一.G ...

  10. 一键安装JDK和自动配置Java环境变量

    新建一个Txt文档,在里面输入下面的内容: @echo off cls color 2f echo. echo ******************************************** ...

最新文章

  1. 安装和使用git遇到的问题总结
  2. Numpy.argsort()(Python)
  3. python sqlsever 时间_Python sqlalchemy时间戳及密码管理实现代码详解
  4. 司机行为识别_台州交警上线“闯红灯抓拍神器”人脸识别+4米大屏,拍到违章直接曝光...
  5. 解决Vue项目报错:Expected indentation of 2 spaces but found 4. eslint(indent) [8, 1]的方法
  6. [原]初次运用数据缓存机制
  7. 最简单的Centos,Mysql安装教程
  8. springboot中的pom文件详解
  9. 华为铁三角作战的道法术,华为铁三角第一人,LTC专家许浩明老师讲授
  10. MapReduce功能实现三---Top N
  11. 阿里巴巴十周年有感----宗教的盛宴
  12. 【HTML 5】HTML5 Canvas rect(), strokeRect() 和 fillRect() 的区别
  13. 机器视觉运动控制一体机应用例程|锂电池组装线上的读码应用
  14. Python经典练习题——求水仙花数
  15. 搞IT的不可不知道的仙童“八叛徒”的故事(转)
  16. 计算机图像学基础课程设计,计算机图形学课程设计
  17. c语言编程led数码管,数码管显示函数
  18. 网神防火墙如何启用双因素/双因子认证(2FA/MFA)身份认证
  19. ava制造业MES生产管理ERP系统
  20. 关于怎么绘制星级评价方法

热门文章

  1. 福昕熊雨前:PDFium开源项目的背后
  2. poj 3678 Katu Puzzle(2-sat)
  3. 通过命令修改wampserver的mysql密码
  4. android 如何extends 多个,Android多线程:继承Thread类 使用解析(含实例教程)
  5. python 局域网 主机名_使用python获取连接到本地网络(基于主机名)的所有设备的ip...
  6. c语言算ex自定义函数,用C语言写定积分的通用函数:sin(x),cos(x),eX.
  7. python游戏循环设置_Pygame:游戏循环前的初始菜单
  8. python自定义函数参数_python自定义函数的参数之四种表现形式
  9. STM32F1笔记(一)GPIO输出
  10. java treemap_Java TreeMap lastKey()方法与示例