关于程序员:贰-初识-makefile-的结构

9次阅读

共计 886 个字符,预计需要花费 3 分钟才能阅读完成。

初识 makefile 的构造

makefile 的意义

  • makefile 用于定义源文件建的依赖关系
  • makefile 阐明如何编译各个源文件并生成可执行文件

依赖的定义:

makefile 中的元素含意

  • targets

    • 通常是须要生成的指标文件名
    • make 所须要执行的命令名称
  • prerequisities

    • 以后指标所依赖的其余指标或文件
  • command

    • 实现指标所须要执行的命令

规定中的注意事项 1

  • targets 能够蕴含多个指标

    • 应用空格对多个指标名进行分隔
  • prerequisites 能够蕴含多个依赖

    • 应用空格对多个依赖进行分隔

规定中的注意事项 2

  • [Tab] 键:‘t’

    • 每一个命令行必须以 [Tab] 字符开始
    • [Tab] 字符通知 make 此时是一个命令行
  • 续航符:

    • 能够将内容离开写到下一行,进步可读性

一个 makefile 的依赖示例

all:test
    echo "make all"
test:echo "make test"  

依赖规定

  • 当指标对应的文件不存在,执行对应命令
  • 当依赖在工夫上比指标更新,执行对应命令
  • 当依赖关系间断产生时,比照依赖链上的每一个指标

小 tips

makefile 中能够在命令前加上 @ 符,作用为命令无回显

第一个 make 的编译案例

hello.out : main.o func.o
    gcc -o hello.out main.o func.o

main.o : main.c
    gcc -o main.o -c main.c

func.o : func.c
    gcc -o func.o -c func.c

[外链图片转存失败, 源站可能有防盗链机制, 倡议将图片保留下来间接上传(img-SCrWqtLh-1596850258618)(5E86E93772EF47C08DE789960383A7F7)]

小技巧

工程开发中讲最终 可执行文件名all 同时作为 makefile 中第一条规定的指标

hello.out all : main.o func.o
    gcc -o hello.out main.o func.o

小结

  • makefile 用于定义源文件建的依赖关系
  • makefile 阐明如何编译各个源文件并生成可执行文件
  • makefile 中的指标之间存在间断依赖关系
  • 依赖存在并且命令执行胜利时指标实现的充要条件
正文完
 0