(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. 基于OpenCV之视频读取,处理和显示框架的搭建(一)
  2. PMBOK项目管理PMI主义\IPMA概述
  3. XMLHttpRepuest2
  4. maven netty 配置_SpringBoot整合Netty(附源码)
  5. oracle数据库常用关键字以及写法
  6. hadoop的开发工具_Hadoop开发工具简介
  7. 信息学奥赛一本通(1065:奇数求和)
  8. REUSE_ALV_GRID_DISPLAY显示ALV,设置可编辑时,与内表数据同步问题
  9. 剑指offer51 构建乘积数组(图解)
  10. 【BZOJ2938】病毒,AC自动机练习
  11. java 用properties文件配置spring数据源,用spring的JdbcTemplate的queryForList查数据
  12. Android基础 写给新手的Android环境配置
  13. [转载] 【RTTmicropython教程】玩转 Web 服务器
  14. matlab画图入门教程
  15. Win 10间歇性卡顿问题
  16. window下mysql免安装版教程大全
  17. 使用CCHttpClient进行cocos2d-x网络编程
  18. 2019网红带货电商新趋势,与传统电商说再见-云秀传媒
  19. 固态硬盘寿命不长?!快来看看12个固态硬盘优化技巧
  20. python的简单使用_用python简单处理图片

热门文章

  1. 随机森林和gbdt结合_决策树与迭代决策树(GBDT)
  2. activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...
  3. android服务下载,android服务之bindService和unService中下载任务中的应用
  4. php 查询and or,php – SQL查询多个AND和OR不起作用
  5. java编译找不到符号_关于久违的Javac,编译出现“找不到符号”
  6. mongo 唯一约束索引_快速掌握mongoDB(三)——mongoDB的索引详解
  7. 负数的 %求余和取模
  8. 美国计算机工程专业,美国计算机工程专业哪些学校比较好
  9. mysql 检查点_my05_mysql检查点简述
  10. pygame只能编写游戏_游戏框架搭建