当前位置:   article > 正文

Linux系统下make工具Makefile总结!_linux编程make工具实验总结

linux编程make工具实验总结

主要介绍在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文件

二.工具的使用方法(linux下make以及makefile(一)

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

int main() {
    fun1();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
//1.c文件
#include<stdio.h>

void fun1() {
    printf("fun1()\n");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
#ifndef _1_H
#define _1_H

void fun1();

#endif
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

进行执行
在这里插入图片描述
生成了目标文件和过度文件
在这里插入图片描述
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
  • 2
  • 3
  • 4
  • 5
  • 6
  1. 再升一级,通过%来替换
app:main.o 1.o 
	gcc main.o 1.o -o app
%.o:%.c
    gcc -c $< -o $@
  • 1
  • 2
  • 3
  • 4
  1. 进行所有的替换
TARGET = app
OBJS = main.o 1.o
CC == gcc

$(TARGRT):$(OBJS)
	$(CC) $^ -o $@
%.o:%.c
    $(CC) -c $< -o $@
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

clean:
	rm -f $(OBJS) $(TARGET)
  • 1
  • 2
  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)  //清除没用的中间文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三.总结

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

参考文档:
1.https://blog.csdn.net/wangqingchuan92/article/details/92832544

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/965460
推荐阅读
相关标签
  

闽ICP备14008679号