当前位置: 首页 > news >正文

广告创意设计模板兰州seo外包公司

广告创意设计模板,兰州seo外包公司,做调查问卷赚钱网站国外,石家庄几次疫情时间表本文已收录至《Linux知识与编程》专栏! 作者:ARMCSKGT 演示环境:CentOS 7 目录 前言 正文 makefile文件与语法规则 make指令与执行逻辑 makefile任务刷新策略 .PHONY修饰为伪目标 最后 前言 会不会写makefile,从一个侧面…

  

本文已收录至《Linux知识与编程》专栏!
作者:ARMCSKGT
演示环境:CentOS 7 

   


目录

前言

正文 

makefile文件与语法规则

make指令与执行逻辑

makefile任务刷新策略

.PHONY修饰为伪目标

最后


前言

会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的,规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建


正文 

makefile是一个围绕依赖关系和依赖方法构建的一个自动化编译工具!


makefile文件与语法规则


make指令的执行是以makefile文件存在为基础的,如果没有makefile则make指令无法执行!

没有makefile文件make指令被迫停止

 makefile文件中写入任务,这些任务是由依赖关系+依赖方法构成和实现的!

依赖关系 = 目标对象 + 执行文件(执行对象)

依赖方法:处理执行对象产生目标对象的方法!


makefile语法格式:

目标对象:执行文件(执行文件) //依赖关系依赖方法(实现方法) //一般方法前面空格

 如图,exe可执行程序的产生依赖与test.c文件,而exe可执行程序的产生方法(也就是依赖方法)是利用gcc去编译并自定义名称为exe最终产生exe可执行程序,这样就完成了一个任务的构建,一个makefile文件中可以写很多任务

  

当然有些目标对象可能不需要执行文件这种半缺失的任务写法也是合理的,,例如我们自己写的clean清理任务,实现自动化清理产生的可执行程序exe同时也可以有多个执行文件(多个执行文件之间使用隔开),例如声明与定义分离时我们需要所有文件一起编译产生可执行程序

  

所以目标对象并不是一定会产生(或者说目标对象只是为了达成某种目的)可以说目标对象也是任务名!执行这个任务可能会产生对象,具体的看任务的目的和实现方法,而且产生的对象名也不一定和目标对象相同,也可以不同!这个可以依据个人喜好和公司规定进行设置!

  

这样每次我们修改完代码,就可以使用make指令进行exe程序的编译,测试完后立刻清除,在以后的项目编写中会有很多个任务,如果一句一句的通过指令执行效率太低,所以我们会经常使用到makefile提高效率!


make指令与执行逻辑


make调用makefile中的某一条任务指令:

make [目标对象]

make调用目标对象任务后会生成目标对象,并显示执行的方法(命令)!

 注意:如果我们执行make指令还没没有写目标对象,则make会默认执行makefile文件中第一个任务,后面的其他任务不会执行!只有我们使用make指令并指定任务的目标对象make才会执行指定的任务产生目标对象!


可能会有人想到说,makefile文件如果写成Makefile会有影响吗?两个都存在怎么办?

makefile和Makefile两个文件都可以被make指令识别和执行,当两个文件都存在时make会优先选择makefile文件去执行!


如果我们的make指令在执行方法,发现执行文件不存在时会在文件中向下在其他任务中去寻找,找到了则先执行对应任务获取自己所需要的执行文件,然后再执行本任务!其中的原理是依赖栈实现的,所以类似于函数调用,一层一层开辟栈帧。

 当然,在过程中产生的所需目标对象也会保留在目录中!

 makefile中依赖方法也不一定只能写一句,可以写多句,例如我们不需要预处理编译等文件,可以产生对象并使用后就立刻删除,而且所以这么多逻辑可以规整为一个依赖方法!


makefile任务刷新策略


在makefile中,如果目标任务的执行可以产生目标对象,则执行文件如果没有修改,再次执行make指令会报错,因为make会判断文件是否被修改(判断修改时间),如果被修改才允许更新目标对象!

 这时如果我们对源文件进行修改,或者touch一下修改源文件的修改时间就能再次使用make指令!


 .PHONY修饰为伪目标


.PHONY是makefile文件中的一个关键字,表示对某个目标对象产生伪目标,这样无论目标对象的执行文件是否被修改,都可以重复执行这个任务!

被.PHONY修饰的任务可以无视任务刷新策略,重复执行这个任务!

 

这个关键字一般用来修饰clean清理任务!我们每次生成可执行程序,再删除,重复执行是非常合理的;当然其他场景下如果需要也可以修饰!


最后

makefile的知识介绍到这里就结束了,相信了解完的朋友们一定有了很多套make任务列表来加速自己的开发;通过makefile极大的提高了我们的开发效率,是我们不可缺少的工具之一!

本次Linux编译器gcc/g++的基本知识就介绍到这里啦,希望能够尽可能帮助到大家。

如果文章中有瑕疵,还请各位大佬细心点评和留言,我将立即修补错误,谢谢!

 🌟其他文章阅读推荐🌟

Linux基础指令-CSDN博客

Linux权限的基本知识-CSDN博客

Linux编辑器vim-CSDN博客

🌹欢迎读者多多浏览多多支持!🌹

http://www.ds6.com.cn/news/1317.html

相关文章:

  • 建站之星安装模板失败百度贴吧怎么做推广
  • php网站开发试卷优化排名seo
  • 电商平台站内推广有哪些2022年国际十大新闻
  • 音乐APP网站开发文案代写收费标准
  • 大良营销网站建设好么域名收录查询工具
  • 4s店网站建设爱站工具包官网下载
  • 做相亲网站赚钱吗网站搜索排名优化软件
  • 做网站容易还是做小程序容易国内搜索引擎大全
  • 国内做房车游网站b站新人视频怎么推广
  • 免费商城版网站电商关键词seo排名
  • 建设安全备案登入那个网站上海营销seo
  • 网站打不开怎么办短视频推广渠道
  • 网站视觉优化的意义线上培训
  • 湖北专业网站建设维修电话十大营销策划公司排名
  • 换友链的网站最让顾客心动的促销活动
  • 广州网站建设o2o百度秒收录
  • 深互动平台网站2021近期时事新闻热点事件
  • 东莞网站建议谷歌官网
  • 中国软件公司有哪些海南seo
  • 仿牌网站优化国内搜索网站排名
  • 网站需要写哪些内容吗口碑营销是什么
  • 广州网站建设 易企建站全网营销推广怎么做
  • 青岛知名网站建设公司seo推广专员招聘
  • 搜索网站定制公司如何自己做一个网站
  • 天津建设厅 注册中心网站首页软文推广是什么意思
  • 2018网站建设网站快速排名上
  • 功能网站建设多少钱山东网络推广优化排名
  • 重庆做网站建设的公司阜新网站seo
  • 安康网站建设公司报价网络口碑营销名词解释
  • 重庆忠县网站建设公司哪里有58精准推广点击器