Linux系统下make工具Makefile总结!

主要介绍在Linux系统下如何通过Makefile进行文件的处理

我们在进行C语言以及其它项目时,可能会创建多个文件来完成整个功能的实现,而在Linux系统下的make工具可以很有效的将我们写好的源文件通过makefile执行批处理!本文主要通过C语言实例进行。

一. make工具

    Makefile基本介绍
Makfile是一种纯文本的编译脚本,在其中可以指定需要编译哪些文件,哪些先编译,哪些后编译,哪些需要重新编译,最终需要生成怎么样的应用程序; 文件命名通常是以Makefile或者makefile
    使用非标准命名
如果使用非标准命名的makefile,必须用命令开关"-f" 或 “-file”
    make命令
用来解释Makefile脚本,并根据脚本中的指定内容,进行操作
    三个概念:比如xxx.c文件通过处理变成xxx.o文件
目标文件:你所要生成的文件,如xxx.o文件 依赖文件:就是所说的源文件,xxx.c文件 处理动作:xxx.c文件通过预处理、编译、汇编生成了xxx.o文件

二.工具的使用方法()

  1. 第一步:分别创建main.c 和 1.c 和 2.c文件
//main.c文件
#include <stdio.h>
#include "1.h"

int main() {
          
   
    fun1();
    return 0;
}
//1.c文件
#include<stdio.h>

void fun1() {
          
   
    printf("fun1()
");
}
#ifndef _1_H
#define _1_H

void fun1();

#endif
  1. 第二步:新建一个Makefile文件
app:main.o 1.o 
	gcc main.o 1.o -o app
main.o:main.c
    gcc -c main.c -o main.o
1.o:1.c
    gcc -c 1.c -o 1.o

进行执行 生成了目标文件和过度文件 3. 第三步:进行升级操作,变量替换 通过变量名称替换:

OBJS=代替要生成的目标文件【可以自定义】,但是需要$符号来引用 $^ :表示所有的依赖文件 $@:所有的目标文件 $<:代表第一个依赖文件 %.o:%.c:表示所有的.o和.c文件
  1. 进行$替换后如下
app:main.o 1.o 
	gcc main.o 1.o -o app
main.o:main.c
    gcc -c $< -o $@
1.o:1.c
    gcc -c $< -o $@
  1. 再升一级,通过%来替换
app:main.o 1.o 
	gcc main.o 1.o -o app
%.o:%.c
    gcc -c $< -o $@
  1. 进行所有的替换
TARGET = app
OBJS = main.o 1.o
CC == gcc

$(TARGRT):$(OBJS)
	$(CC) $^ -o $@
%.o:%.c
    $(CC) -c $< -o $@

7.最后添加一条指令,将多余文件清楚

clean:
	rm -f $(OBJS) $(TARGET)
  1. 最终修改之后的版本:这样的操作可以用最小的代价换取最大的成效
TARGET = app  //将目标文件用TARGET替代
OBJS = main.o 1.o  //将目标文件所依赖的文件用OBJS替代
CC == gcc	//用CC替代编译器gcc

$(TARGRT):$(OBJS)     //$ 表示引用
	$(CC) $^ -o $@    //$^表示所有的依赖文件、$@表示目标文件
%.o:%.c
    $(CC) -c $< -o $@   //$<表示第一个依赖文件
clean:
	rm -f $(OBJS) $(TARGET)  //清除没用的中间文件

三.总结

Makefile可以减轻我们许许多多的工作量,需要我们在实践磨炼中与更加熟练的运用,使用时,一定要分清目标文件和依赖文件的关系,以及各种变量所表示的意义

参考文档: 1.

经验分享 程序员 微信小程序 职场和发展