Makefile的概述
创始人
2024-06-01 17:41:56
0
  1. 什么是make

make 是个命令,是个可执行程序,用来解析Makefile文件的命令,这个命令存放在 /usr/bin

make概述

1.GUN make是一种代码维护工具
2.make 工具会根据makefile文件定义的规则和步骤,完成整个软件项目的代码维护工作。
3.一般用来简化编译的工作,可以极大地提高软件开发的效率。
4.windows 下一般由集成开发环境自动生成
5.linux 下需要由我们按照其语法自己编写

make主要解决两个问题:

1.大量代码的关系维护
大项目中源代码比较多,手工维护、编译时间长而且编译命令复杂,难以记忆及维护,把代码维护命令及编译命令写在makefile文件中,然后再用make工具解析此文件自动执行相应的命令,可实现代码的合理编译
2.减少重复编译时间
在改动其中一个文件的时候,能判断那些文件被修改过,可以只对该文件进行重新编译,然后重新链接所有的目标文件,节省时间。

  1. 什么是makefile?

makefile 是个文件,这个文件中描述了咱们程序的编译规则
执行make命令的时候,make命令会在当前目录下找makefile文件,根据makefile文件里的规则,编译咱们的程序。
注意:Makefile 规则文件是咱们程序员根据自己的程序,编写的编译规则

3.采用Makefile的好处

(1)简化编译程序的时候输入得命令,编译的时候只需要敲make命令就可以了
(2)可以节省编译时间,提高编译效率

makefile解决两大问题:大量代码维护,减少重复编译事件

4.makefile的语法规则

目标:依赖文件列表
命令列表
gcc main.c fun.c -o main
目标:就是需要生成的文件
依赖文件:通过依赖文件 生成 目标文件
命令列表:实现 将依赖文件 生成 目标文件

编写一个简单的:makefile

make 默认在工作目录中寻找名为 GNUmakefile、makefile、Makefile 的文件作为
makefile 输入文件 make -f 自定义makefle文件名 make 工具默认会实现 makefile 文件内的第一个目标。 make 目标 ----->选择目标执行

稍微高级:makefile

5.makefile的变量分类

1、自定义变量

1 变量名=变量值

引用变量: $(变量名)或${变量名}

CC=gcc
target=main
obj=main.o fun.o
$(target):$(obj)$(CC) $(obj) -o $(target)
main.o:main.c$(CC) -c main.c -o main.o
fun.o:fun.c$(CC) -c fun.c -o fun.o
clean:rm *.o main注意:注意tab(空格)

2、系统环境变量

make 可以识别系统环境变量,在 makefile 中可直接读取或修改拷贝后的变量。
查看环境变量:env

3、预定义变量

makefile 中有许多预定义变量,这些变量具有特殊的含义,可在makefile直接使用。

高级的makefil

CC=gcc
target=main
obj=main.o fun.o
flags=-Wall
$(target):$(obj)$(CC) $^ -o $@ $(flags)
%.0:%.c$(CC) -c $< -o $@ $(flags)
clean:rm $(obj)  $(target)

相关内容

热门资讯

安卓系统小额扣款在哪看 你有没有遇到过这种情况:手机里突然少了点零花钱,却不知道是哪个APP偷偷扣了款?别急,今天就来教你怎...
安卓8系统兼容面具吗 你有没有想过,你的安卓8系统手机能不能装上那些酷炫的面具应用呢?这可是个让人心头一紧的问题,毕竟谁不...
安卓手机系统升级流程,从准备到... 你有没有发现,你的安卓手机最近总是时不时地提醒你系统要升级啦?是不是有点小激动,又有点小紧张呢?别急...
51虚拟机安卓系统,功能解析与... 你有没有想过,在手机上也能体验到电脑的强大功能呢?没错,这就是51虚拟机安卓系统的魅力所在!今天,就...
王者安卓苹果互通系统,安卓苹果... 哇,你知道吗?最近在游戏界可是掀起了一股热潮,那就是《王者荣耀》的安卓和苹果互通系统!是不是听起来就...
黑苹果单系统安卓,黑苹果单系统... 亲爱的读者们,你是否曾梦想过拥有一台既能运行Windows系统,又能畅玩安卓应用的电脑呢?今天,就让...
安卓系统怎么开启隐藏键,安卓系... 你有没有发现安卓手机里藏着一些小秘密呢?比如那些隐藏的键,它们就像手机里的宝藏,等着你去发现和开启。...
华为安卓系统开机页面,科技美学... 亲爱的读者,你是否曾好奇过,当你按下华为手机的开机键,那独特的安卓系统开机页面背后隐藏着怎样的故事?...
安卓系统手机号标记,一键识别号... 你有没有发现,现在用安卓系统手机的人越来越多了呢?手机号标记这个功能,简直就是咱们日常生活中的小帮手...
鸿蒙5.0系统和安卓区别,系统... 你知道吗?最近手机圈子里可是炸开了锅,因为华为的新操作系统鸿蒙5.0系统终于发布了!这可是个大新闻,...
安装安卓系统套件的软件,软件应... 你有没有想过,给你的手机换换口味?是的,就是那种从iOS跳到安卓的感觉,是不是听起来就有点小刺激呢?...
安卓系统各组件怎么安装,安卓系... 你有没有想过,安卓系统里那些神奇的组件是怎么安装到你的手机上的呢?是不是觉得这个过程神秘又复杂?别急...
安卓系统cookie设置阻止,... 你有没有发现,在使用安卓手机的时候,有时候网页会偷偷地跟踪你的浏览记录呢?别担心,今天就来教你怎么设...
2023安卓最流畅系统,性能与... 你有没有发现,手机用久了,就像人一样,开始变得“臃肿”起来?尤其是安卓系统,有时候感觉就像一个老态龙...
安卓子系统的终极玩法,终极玩法... 你有没有发现,安卓系统就像一个巨大的宝藏库,里面藏着无数好玩的游戏和实用的应用?今天,就让我带你一起...
安卓系统主题英文名,探索安卓系... 你有没有发现,手机里的世界其实可以变得五彩斑斓?没错,就是那个我们每天离不开的安卓系统,它就像一个巨...
安卓系统怎么调亮屏幕,安卓系统... 手机屏幕暗暗的,是不是觉得看东西都费劲?别急,今天就来教你怎么轻松调亮安卓系统的屏幕亮度,让你的手机...
手机升级安卓系统包,畅享智能生... 亲爱的手机用户们,你是否也和我一样,对手机升级安卓系统包充满了好奇和期待呢?每次手机系统一更新,我们...
新款cs75安卓系统,新款CS... 你有没有听说?最近汽车界可是炸开了锅,因为一款全新的车型——新款CS75,竟然搭载了安卓系统!这可不...
安卓系统送ios皮肤,体验不一... 你知道吗?最近在手机圈里可是掀起了一股热潮呢!那就是——安卓系统送iOS皮肤。是不是听起来有点不可思...