五、Makefile/makefile

一、makefile概念二、如何实现makefile(一)基础的makefile文件(生成单可执行文件)1.格式2.示例(二) make指令(二)基础的makefile文件(生成多个执行文件)1.格式2.示例(三)进阶的makefile格式1.省略指令2.引入变量3.解决子目录问题4.makefile自动清理中间文件三、最简版本makefile
摘要由CSDN通过智能技术生成

我们写大型项目时,一般需要很多源文件,源文件会在不同的目录中的文件夹里面包含着,这样我们所有的源文件不会在一个文件中包含,用gcc -o main 所有的.c文件来编译,就很麻烦了,你需要记住所有的.c文件。这时makefile应运而生。

一、makefile概念

【1. 概念:

makefile它制定一系列的规则来指定,哪写文件需要先编译,哪写文件需要后编译,那些文件需要重新编译(可以自动检测哪写文件被修改了,修改了进行编译,没修改就不用重新编译了)。关系到整个工程的编译规则,也可执行操作系统的命令。和windows上IDE一样,管理工程,实现自动化编译。。

【2. 优点:

  • makefile带来的好处就是自动化编译,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
  • 每次只会编译修改的和依赖于修改的那些文件,提高了编译效率。

【3. make】

make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数IDE都有这个命令。管理工程,实现自动化编译。

【4.make和makefile的关系】

make是一个命令,makefile是一个文件,当makefile文件写好后,只需要一个make命令就可以将makefile文件运行起来。所以make是解释makefile中指令的命令工具。

二、如何实现makefile

总结makefile文件的实现思想:就是把你需要的目标文件,.o文件,.c文件如何实现的规则(指令)按照格式写进去就可以。

(一)基础的makefile文件(生成单可执行文件)

前提:所有文件均在统一目录下。

1.格式

【】里内容是格式,()是解释。
首先对可执行文件的生成建立规则

第一行【最后要生成的可执行文件名:需要依赖的文件(.o)】
第二行【	(Tab键)生成可执行文件的指令(gcc -o main main.o ……)】

然后对.o文件的生成建立规则:

第三行【.o文件:需要依赖的文件(.c)】
第四行【	(Tab键)生成.o文件的指令(gcc -c main.c)】

如果还有.o文件继续重复3,4行,只需改变文件名即可。

我们最后只需要一个可执行文件,所以中间的.o文件我们不需要,可以把他们删了,这个标识的作用就是这个。

第n行【clean:(一个标识,需要手动调)】
第n+1行【rm *.o  main(删除.o,main文件)】
2.示例

我们写四个函数方法文件(add.c,sub.c,mux.c,div.c)一个头文件(my_math.h),一个主函数文件(main.c)。
四个方法分别是加减乘除,内部实现很简单,我们示例除法的,其他类似:

# include "./my_math.h"
# include<stdio.h>
# include<stdlib.h>

double my_div(int a,int b)
{
   
    if(b==0)
    {
   
        printf("b==0 error\n");
        exit(0);
    }
    return (a*1.0)/b;
}

头文件里面我们声明这四个方法:

#ifndef ___MYMATH_H//防止头文件重复包含
#define __MYMATH_H

int my_add(int
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值