1. Makefile可以使用变量代替

命令行:make -f Makefile2 说明开始make一个名为Makefile2的文件

###############定义变量##################
CC:=gcc
CFLAGS:=-Iinclude
CFLAGS+= -c
TARGET:=bin/mymath_test
DEPEND:=obj/mymath.o
DEPEND+=obj/mymath_test.o $(TARGET):$(DEPEND)
$(CC) -o $@ $^
obj/mymath.o:src/mymath.c
$(CC) -o $@ $(CFLAGS) $^
obj/mymath_test.o:src/mymath_test.c
$(CC) -o $@ $(CFLAGS) $^
clean:
rm -rf $(TARGET) $(DEPEND)
cd ..

  其中下面 目标:=依赖列表 都是变量定义

CC:=gcc
CFLAGS:=-Iinclude
CFLAGS+= -c
TARGET:=bin/mymath_test
DEPEND:=obj/mymath.o
DEPEND+=obj/mymath_test.o

第二:

$@ 表示当前目标文件

$^表示当前要目标要依赖的全部文件

  1. 常见的虚目标

主要说明clearn这个虚目标

make -f Makefile2 clean 表示清除刚才make编译好的文件;就是说删除刚才编译好的可执行文件和目标.o的文件

clean:
rm -rf $(TARGET) $(DEPEND)
cd ..
daokr@ubuntu:/mnt/hgfs/mystudy/clession10$ make -f Makefile2
gcc -o obj/mymath.o -Iinclude -c src/mymath.c
gcc -o obj/mymath_test.o -Iinclude -c src/mymath_test.c
gcc -o bin/mymath_test obj/mymath.o obj/mymath_test.o
daokr@ubuntu:/mnt/hgfs/mystudy/clession10$ make -f Makefile2 clean
rm -fr bin/mymath_test obj/mymath.o obj/mymath_test.o

  

###############定义变量##################
CC:=gcc
CFLAGS:=-Iinclude
CFLAGS+= -c
TARGET:=bin/mymath_test
DEPEND:=obj/mymath.o
DEPEND+=obj/mymath_test.o $(TARGET):$(DEPEND)#开始执行
$(CC) -o $@ $^
obj/mymath.o:src/mymath.c
$(CC) -o $@ $(CFLAGS) $^
obj/mymath_test.o:src/mymath_test.c
$(CC) -o $@ $(CFLAGS) $^
.PHONY:clean#指定clean是虚目标
clean:
rm -fr $(TARGET) $(DEPEND)

  

开始编写Makefile(二)Makefile变量的使用的更多相关文章

  1. makefile使用笔记(二)变量

    By francis_hao    Oct 30,2017   makefile中可以使用变量,变量有多种类型,下面分别介绍 简单变量 简单变量的命名规则和c语言一致. 给变量赋值就表示创建了这个变量 ...

  2. Makefile中的变量和shell变量

    我们在写makefile时 多多少少会用到shell脚本, 对于变量的在shell中的使用有一些要注意的细节.让我们从一个简单的makefile来看看. 注意makefile中一定要有一个目标,且一定 ...

  3. u-boot(二)makefile

    目录 u-boot(二)makefile 引入 目录结构(1.1.6) 配置文件 目标 配置具体的单板 编译阶段 过程 链接入口 配置链接地址 附录 附录A:mkconfig解析 附录B 链接脚本 t ...

  4. 跟我一起写Makefile(二)

    Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...

  5. 联盛德 HLK-W806 (十二): Makefile组织结构和编译流程说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  6. makefile中使用变量

    makefile里的变量就像一个变量,变量的作用主要如下: (1)保存文件名列表. (2)保存编译器的参数. makefile中的变量是用一个字符串在makefile中定义的,这个文本串就是变量的值. ...

  7. makefile中打印变量名字,方便调试

    $(warning $(DVD_SERVICE)) // DVD_SerVICE是Makefile中的变量 $(warning   ST40_IMPORTS is $(ST40_IMPORTS)) 变 ...

  8. Makefile内置变量,递归式变量,直接展开式变量,条件赋值,追加赋值

    将shell命令的输出赋值给变量: VALUE = $(shell   命令) Makefile中给变量赋值: =     是递归展开式变量 value1 = 5 value2 = $(value1) ...

  9. 【Makefile】5-Makefile变量的基础

    目录 前言 概念 Chapter 5:变量的基础 5.1 变量的基础 * 空格的定义 ** 一些赋值 一些特殊的符号 5.2 变量中的变量 * 5.3 变量高级用法 变量值替换 把变量的值再当成变量 ...

  10. Configure,Makefile.am, Makefile.in, Makefile文件

    一 软件安装关于 makefile文件问题 如果拿到的工程文件中,没有Makefile文件,而只有configure.in和Makefile.am文件,我们是不能够直接进行编译的,必须根据config ...

随机推荐

  1. 单实例dg软件从10.2.0.4版本安装至10.2.0.5.12

    DG环境搭建需求,因此安装与主库相同的软件版本 1.主库软件版本10.2.0.5.12 2dg环境提供的是全新的10.2.0.4.0 3.安装步骤,安装10.2.0.5 静默安装 psu安装10.2. ...

  2. Spring Cloud Alibaba学习笔记(21) - Spring Cloud Gateway 自定义全局过滤器

    在前文中,我们介绍了Spring Cloud Gateway内置了一系列的全局过滤器,本文介绍如何自定义全局过滤器. 自定义全局过滤需要实现GlobalFilter 接口,该接口和 GatewayFi ...

  3. [unity]GPU Instance学习

    前言我们之前研究过为什么Unity的UI可以合批,是因为使用了相同的材质进行渲染,UI上不同图片渲染是通过把图片打成一张图集后,使用Image组件对顶点填充了不同的UV值实现的.那么有没有什么办法可以 ...

  4. 关于 Nginx的相关学习

    转自:https://www.cnblogs.com/wcwnina/category/1193394.html Nginx能做什么 ——反向代理 ——负载均衡 ——HTTP服务器(动静分离) ——正 ...

  5. 有关mysql的utf8和utf8mb4,以及Illegal mix of collations for operation 'like'

    参考以下几个帖子: https://www.cnblogs.com/install/p/4417527.html https://blog.csdn.net/Yetmoon/article/detai ...

  6. MySQL连接使用

    在mysql查询中,我们会通过排序,分组等在一张表中读取数据,这是比较简单的,但是在真正的应用中经常需要从多个数据表中读取数据.下面就为大家介绍这种方式,链接查询join. INNER JOIN(内连 ...

  7. 通过Git和GitHub项目管理

    用Git来管理代码文件 安装环境 windows 首先是安装git: 1.到git官网下载一个安装包 2.安装git,详细过程略 3.打开项目文件夹,并鼠标右击,打开git bash 4.从未使用过g ...

  8. c++ 使用torchscript 加载训练好的pytorch模型

    1.首先官网上下载libtorch,放到当前项目下 2.将pytorch训练好的模型使用torch.jit.trace导出为.pt格式 import torch from skimage import ...

  9. jquey动画效果

    jquery的事件没有on,js的有. 1.show()  显示  由小变大缓慢显示 <html lang="en"> <head> <meta ch ...

  10. SpringCloud2.0 Zuul 网关路由 基础教程(十)

    1.启动基础工程 1.1.启动[服务注册中心],工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...