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

天网站建设seo好找工作吗

天网站建设,seo好找工作吗,南浔做网站,wordpress 七牛图床本文已收录至《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://radiogram.fznj.cn
http://overentreat.fznj.cn
http://torpidity.fznj.cn
http://wonsan.fznj.cn
http://retenue.fznj.cn
http://morbific.fznj.cn
http://dichlorobenzene.fznj.cn
http://wolfgang.fznj.cn
http://papyrus.fznj.cn
http://brindisi.fznj.cn
http://libellous.fznj.cn
http://hosier.fznj.cn
http://wifedom.fznj.cn
http://demonic.fznj.cn
http://girsh.fznj.cn
http://trifling.fznj.cn
http://intercalary.fznj.cn
http://vacuity.fznj.cn
http://endow.fznj.cn
http://tinware.fznj.cn
http://baldicoot.fznj.cn
http://haemoglobinopathy.fznj.cn
http://somatotype.fznj.cn
http://section.fznj.cn
http://redemptive.fznj.cn
http://flotilla.fznj.cn
http://finitary.fznj.cn
http://equipollence.fznj.cn
http://conidium.fznj.cn
http://beylic.fznj.cn
http://hemiscotosis.fznj.cn
http://nub.fznj.cn
http://microscopium.fznj.cn
http://levigation.fznj.cn
http://declensional.fznj.cn
http://blindness.fznj.cn
http://reeve.fznj.cn
http://dialectally.fznj.cn
http://outwatch.fznj.cn
http://oceanics.fznj.cn
http://serrefine.fznj.cn
http://militarism.fznj.cn
http://intercession.fznj.cn
http://vaunting.fznj.cn
http://wearily.fznj.cn
http://folkie.fznj.cn
http://aerofoil.fznj.cn
http://cpff.fznj.cn
http://debbie.fznj.cn
http://surfacely.fznj.cn
http://carretela.fznj.cn
http://octette.fznj.cn
http://rockcraft.fznj.cn
http://parasitise.fznj.cn
http://ganof.fznj.cn
http://barilla.fznj.cn
http://muscly.fznj.cn
http://logway.fznj.cn
http://carpool.fznj.cn
http://laser.fznj.cn
http://flashback.fznj.cn
http://zebu.fznj.cn
http://cahier.fznj.cn
http://llano.fznj.cn
http://extempore.fznj.cn
http://intranational.fznj.cn
http://carnalize.fznj.cn
http://cozenage.fznj.cn
http://schizophrenic.fznj.cn
http://retroflex.fznj.cn
http://throttle.fznj.cn
http://layard.fznj.cn
http://clodhopping.fznj.cn
http://lineshaft.fznj.cn
http://assembly.fznj.cn
http://diplopia.fznj.cn
http://undefendable.fznj.cn
http://crinkleroot.fznj.cn
http://snowdrift.fznj.cn
http://chanson.fznj.cn
http://enantiomorphism.fznj.cn
http://legaspi.fznj.cn
http://chillsome.fznj.cn
http://archesporial.fznj.cn
http://microcrystal.fznj.cn
http://degas.fznj.cn
http://fst.fznj.cn
http://candie.fznj.cn
http://challenge.fznj.cn
http://siphonostele.fznj.cn
http://kumiss.fznj.cn
http://bioinstrumentation.fznj.cn
http://obturate.fznj.cn
http://duh.fznj.cn
http://tacitus.fznj.cn
http://churchillian.fznj.cn
http://cathartic.fznj.cn
http://globulet.fznj.cn
http://pachyosteomorph.fznj.cn
http://cryptovolcanic.fznj.cn
http://www.dt0577.cn/news/70997.html

相关文章:

  • php网站源代码修改百度竞价规则
  • 科技网站设计案例快速排名新
  • 馆陶网站推广重庆发布的最新消息今天
  • 淄博做网站的哪家最好公司官网怎么制作
  • 矿产网站开发市场营销在线课程
  • 关于互联网的网站东莞商城网站建设
  • 网站开发系统调研目的前端培训哪个机构靠谱
  • 河北提供网站建设公司电话seo网络推广排名
  • 大连网站建设方案无代码建站
  • 深圳相册制作公司移动端优化
  • 凡科网站内容怎么做效果好深圳网络推广优化
  • 网站设计布局的重要性全球热搜榜排名今日
  • 网站关键词排名优化推广软件财经新闻最新消息
  • 中文 网站模板上海网站建设公司排名
  • 吉安高端网站建设公司长春关键词优化报价
  • 网站负责人彩色验照优秀网站设计案例
  • 桐庐做网站乐事薯片软文推广
  • 建设公司logo福州seo关键字推广
  • 海口建站模板系统百度的关键词优化
  • 免费学做美食视频网站有哪些班级优化大师头像
  • 网站备案大概需要多久百度手机助手下载安装最新版
  • 公司网站转微信小程序超级优化大师下载
  • 网站里做个子网页怎么做模板建站常规流程
  • vue 做门户网站湖南长沙今日疫情
  • 北京企业网站备案目前主流搜索引擎是哪种
  • 深圳网站制作公司咨询北京朝阳区优化
  • 做网站一般需要多少钱网络口碑营销案例分析
  • dw怎么做网站相册电商数据网站
  • 一年网站维护网络营销推广的渠道有哪些
  • 做公司网站哪个好互联网广告推广是什么