zoukankan      html  css  js  c++  java
  • Makefile 简易教程

    Makefile 就像是一个Shell脚本一样,通过批量处理,来完成自动化编译

    Makefile 基本规则

    目标:依赖
    (tab缩进)命令

    一、下面是最简单的makefile文件

    image

    修改一个文件,所有的文件都需要重新编译

    二、根据makefile的工作原理

    1. 自动检查依赖是否存在,不存在则向下搜索规重新编译或报错
    2. 存在则检查依赖是不是最新状态,不是则更新

    image

    但是此方法当依赖较多时比较麻烦

    三、引入变量

    普通变量

    直接使用=进行赋值,使用$(变量名)引用

    var=abc
    var2=$(var)
    

    自带变量

    CC = gcc #arm-linux-gcc
    CPPFLAGS : C预处理的选项 -I
    CFLAGS:   C编译器的选项 -Wall -g -c
    LDFLAGS :  链接器选项 -L  -l
    

    自动变量

    $@ 表示规则中的目标
    $< 表示规则中的第一个条件
    $^ 表示规则中所有条件
    

    同时可以使用%作为通配符直接代表目标名和依赖名,但需注意,%代表一个或多个同时目标和依赖名必须一致
    image

    makefile函数

    常用的两个

    1. wildcard – 查找指定目录下的指定类型的文件
    src=$(wildcard *.c)  //找到当前目录下所有后缀为.c的文件,赋值给src
    2. patsubst – 匹配替换
    obj=$(patsubst %.c,%.o, $(src)) //把src变量里所有后缀为.c的文件替换成.o
    

    image

    makefile的清理工作

    当程序编译完成后,文件夹中还存在很多编译过程中生成的预编译文件,最后一步就是清理这些文件
    image

  • 相关阅读:
    C# Task.Run 和 Task.Factory.StartNew 区别
    数据库面试题(实时更新)
    python面试题(实时更新)
    opencv简介以及环境搭建
    Django分页器
    django的开发环境
    Django简介以及MVC模式
    Virtualbox修改虚拟机分配内存的大小
    深浅拷贝
    react-native-typescript-项目环境搭建
  • 原文地址:https://www.cnblogs.com/cokefentas/p/14802242.html
Copyright © 2011-2022 走看看