C语言的高级编程(二)

MAKEFILE相关


Make简介

  • 工程管理器,用来管理较多的文件。
  • make将只编译改动的代码文件,而不用完全编译。

Makefile 基本结构

Makefile是Make读入的唯一配置文件

  • Makefile格式
target : dependency_files
 command

举例:

hello.o : hello.c hello.h
	gcc -c hello.c -o hello.o

C语言的高级编程(二)_第1张图片
用Makefile删除中间文件,在命令行输入make clean(Makefile中要加入代码)
C语言的高级编程(二)_第2张图片

创建和使用变量
  • 定义方式

    • 递归展开方式 VAR = var (向后查找)
    • 简单方式 VAR := var (类似C语言宏定义)
    • 是否定义 ?= (类似#ifndef )
  • 变量使用 $(VAR)

  • 用 $ 则用 $$ 来表示

  • 相当于宏定义

  • 预定义的变量
    C语言的高级编程(二)_第3张图片

  • 自动变量
    C语言的高级编程(二)_第4张图片

  • 举例:
    C语言的高级编程(二)_第5张图片
    自动变量
    C语言的高级编程(二)_第6张图片

make使用

C语言的高级编程(二)_第7张图片

make隐含规则

在这里插入图片描述
C语言的高级编程(二)_第8张图片

Makefile的VPATH
  • VPATH:虚路径
    • 如果有大量的源文件,我们通常将其存放在不同的目录中。所以,当make需要寻找文件的依赖关系时,你介意在文件前加上路径,最好的方法是把一个路径告诉make,让make自动去找。
    • Makefile文件中的特殊变量“VPATH”就是完成这个功能,如果定义了这个变量,那么,make就会在当当前目录找不到的情况下,到指定的目录中去寻找文件。
    • 定义指定了两个目录,scr和…/headers,make会按照这个顺序进行搜索。目录由“冒号”分割
      VPATH = src: ../headers
      

你可能感兴趣的:(Linux,c语言)