美文网首页
makefile编写规则

makefile编写规则

作者: D_Major | 来源:发表于2020-03-01 15:46 被阅读0次

目标:依赖
(tab)指令
第一行必须为最终目标, 生成对象文件.o是为了避免重复编译未修改的.c文件.

makefile中的自动变量只能在规则中的命令使用
$<: 规则中第一个依赖
$@: 规则中的目标
$^: 规则中的所有依赖
app:main.o sub.o mul.o
    gcc $^ -o $@ #(即gcc main.o sub.o mul.o -o app)

%.o:%.c
    gcc -c $< -o $@

也可以使用自带函数和自定义变量

src=$(wildcard ./*.c) #用来查找文件, 返回字符串, 加$()成为变量
obj=$(patsubst ./%.c, ./%.o, $(src))  #字符串替换, 把$(src)中的.c都替换成.o
# 以上两句等价于obj=main.o sub.o mul.o
target=app
$(target):$(obj)
    gcc $(obj) -o $(target)

%.o:%.c
    gcc -c $< -o $@

# 删除所有.o和app, 通过make clean执行clean伪目标, 伪目标不会生成文件因此不会和当前目录下存在的同名clean文件比较新旧导致无法执行命令, 只是一个安全措施. 
.PHONY:clean
clean:
    -mkdir /aa #无权限无法创建, 命令前加-表示出错后忽略, 继续执行后面的命令
    rm -f $(obj) $(target)

makefile维护的内部变量
CPPFLAGS: 预处理器需要的选项 如: -I (预处理包括头文件展开, 宏替换, 取消注释)
CFLAGS: 编译的时候使用的参数 -Wall -g -c
LDFLAGS: 链接库使用的选项 -L -l

相关文章

  • 编写Makefile及简单分析

    makefile的好处:一次编写,终身受益 makefile的命名规则: makefile Makefile ma...

  • makefile编写规则

    目标:依赖(tab)指令第一行必须为最终目标, 生成对象文件.o是为了避免重复编译未修改的.c文件. 也可以使用自...

  • Makefile.am 规则和实例详解

    转载自:Makefile.am 规则和实例详解--鹏博客 编写Linux C 程序的时候,自己来写Makefile...

  • makefile编写,GDB调试

    1.makefile编写的三要素 在学习编写makefile文件以前,我们先来看makefile编写的三要素。 1...

  • Makefile 工程管理

    Ⅰ Makefile的用途 Ⅱ Makefile的构成 Ⅲ Makefile构成-----规则 Ⅳ Makefil...

  • Makefile自动化变量

    学习笔记,摘自陈皓的《跟我一起写 Makefile》 Makefile规则 Makefile文件由一系列规则构成。...

  • makefile相关

    Makefile的规则 在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。 tar...

  • 二 . 树莓派A20驱动程序编写(模板程序)

    1 Makefile Makefile文件编写如下: 2 *.c文件 建立一个test.文件,编写内容如下: 3 ...

  • Makefile 编写

    1. 原生 Makefile 自己编写 Makefile 文件 2. CMakeLists.txt 文件 CMak...

  • Makefile编写

    背景 以前学的一些东西需要记录下 Makefile 编写 以自己实际项目来阐述每个的用法 目录结构15324023...

网友评论

      本文标题:makefile编写规则

      本文链接:https://www.haomeiwen.com/subject/ladqkhtx.html