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

江苏企业网站建设公司百度招聘2022年最新招聘

江苏企业网站建设公司,百度招聘2022年最新招聘,wordpress 跳过ftp,在线查询网站收录make/makefile 文章目录 make/makefile初步认识makefile的工作流程依赖关系和依赖方法make的使用 总结 make是一个命令,是一个解释makefile中指令的命令工具,makefile是一个文件,当前目录下的文件,两者搭配使用,完成项…

make/makefile

文章目录

  • make/makefile
    • 初步认识makefile的工作流程
    • 依赖关系和依赖方法
    • make的使用
  • 总结


make是一个命令,是一个解释makefile中指令的命令工具,makefile是一个文件,当前目录下的文件,两者搭配使用,完成项目自动化构建

make/makefile是Linux项目自动化构建工具,将多个源文件放在makefile中,通过make命令,通过makefile文件中的依赖关系,使得文件实现自动化编译,极大的提高了软件开发的效率。

初步认识makefile的工作流程

下面通过一段代码进行编译演示makefile的工作流程

1.认识makefile文件的内容格式要求

在这里插入图片描述

2.make命令

在这里插入图片描述

上述内容,我们通过make命令,通过makefile文件中的依赖关系实现了test可执行程序。

依赖关系和依赖方法

依赖关系为我们要实现的可执行文件是需要依赖于一些文件,通过依赖方法来实现的。只需要找到合适的依赖关系和依赖方法,我们就可以自动化编译

在这里插入图片描述

//1.依赖方法实际上就是实现依赖关系的语句,来得到可执行文件
test:test.c   //当前目录下进行查找发现拥有test.c文件gcc -c test test.c  //我们通过改gcc语句来得到test
//2.如果拥有多对依赖关系的时候,对于依赖关系的文件在该makefile所在目录下进行查找,如果没有,就查看makefile中是否有能得到该文件的依赖关系,然后一步一步的向下,直到查找到的依赖关系的文件是已存在的,可以从这一依赖关系,开始运行gcc语句,来得到对应文件来作为另一依赖关系的依赖文件1 test:test.o      			//test.o 文件不存在,所以向下找2     gcc -o test test.o3 test.o:test.s				//得到.o需要.s文件,所以还是没法运行对应的gcc语句(依赖方法)4     gcc -c test.s -o test.o5 test.s:test.i				//。。。6     gcc -S test.i -o test.s                                                       7 test.i:test.c				//最后找到了.c文件的依赖关系(.c是makefile所在目录下已有的文件所以是可以执行对应的gcc语句的)8     gcc -E test.c -o test.i
//所以从 第8行开始执行.c得到.i,现在有了.i 在由test.s:test.i关系通过gcc -S test.i -o test.s  语句来得到.s以此类推,最后得到test可执行文件

make的使用

我们创建好makefile文件之后,我们可以通过make命令来运行该文件,但是我们发现的是make只能运行一次,情况如下:

在这里插入图片描述

//1.为什么会这样呢?难道不可以运行make创建新的test覆盖原来的test可执行文件对于make命令来讲,这是为了提高编译效率
//2.那么是如何判断是否需要更新该test文件的呢?我们先认识一个事情:先有源文件,再通过一定的依赖方法,得到可执行程序,所以一般来讲源文件的最近的修改时间比可执行文件要老(旧)所以当我们更改源文件之后,历史上曾经还有可执行文件,那么源文件的最近修改的时间,一定是 比可执行文件要新的。我们比较的是可执行程序的最近修改时间和源文件的最近修改时间如果.exe 新于 .c源文件 那么说明源文件是老的,即不需要重新编译如果.exe 旧于 .c源文件 那么说明.c源文件在实现.exe之后被更改了,所以需要重新编译一般 .exe!=.c

对于上述内容总结,make会根据源文件和可执行程序的新旧,来判定是否需要重新执行依赖关系进行编译!!!

查看一下文件状态命令:stat 文件名

在这里插入图片描述

文件内容之外的就是文件属性,文件=文件内容+文件属性

下面是对于三种时间的演示:

在这里插入图片描述

//对于上述的内容我们知道了
//1.Access是多次访问之后才会进行改变,是为了系统性能考虑
//2.Modify是文件内容改变之后才会改变,相应的一般大小变化之后Change也会改变,所以一般Modify==Change
//3.Change是文件属性变化才会改变(权限,大小等),一般只有Change会发生变化(Access可能变)

所以对于make判断源文件和目标文件的新旧问题,我们采用的是Change的时间(因为稳定,文件发生变化,就一定会改变时间)

对于文件新旧问题演示make
在这里插入图片描述

如果是每次都要指定指定的依赖关系:使用.PHONY : 伪目标

.PHONY:test 表示不管如何(test.c不更改也可以)都会执行该依赖关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2A3ZsIRU-1689503950289)(C:\Users\红颜\AppData\Roaming\Typora\typora-user-images\image-20230716175439430.png)]

运行展示:

在这里插入图片描述

make clean的使用

make clean 使得make的操作更加简便,想要删除指定可执行程序的时候,不用去rm,直接make clean即可

操作演示:
在这里插入图片描述

在这里插入图片描述

总结

  1. make 默认实现的是makefile文件中的第一部分(模块)

  2. make + 目标 可以实现makefile中的指定目标(部分)如make clean、make test等

  3. make默认的文件是makefile/Makefile,如果使用其他文件进行操作,使用:make -f filename

  4. 对于依赖关系和依赖方法的认识,以及make不能连续执行,是因为目标文件已经是最新的,通过stat filename来查看指定文件的信息。更改源文件的信息就可以再次make进行编译

  5. stat filename(文件名),以stat+文件名的形式,我们可以查看文件的基本信息之外的三种时间

分别为:

  • Access:表示最近访问文件的时间
  • Modify:表示最近修改文件内容的时间
  • Change:表示最近修改文件属性的时间

为了linux系统的性能,Access需要多次访问该文件才能自动修改时间。

一般来讲Modify改变,文件大小改变,所以Change改变,文件属性改变,一般只有Change改变,所以我们对于是否重新编译目标文件,比较的是源文件和可执行程序的Change时间。


文章转载自:
http://dinncosporicide.wbqt.cn
http://dinncosimplex.wbqt.cn
http://dinnconobleite.wbqt.cn
http://dinncoschistose.wbqt.cn
http://dinncoimidazole.wbqt.cn
http://dinncoumiak.wbqt.cn
http://dinncohorsebreaker.wbqt.cn
http://dinncolimaceous.wbqt.cn
http://dinncoleguminous.wbqt.cn
http://dinncocompassionate.wbqt.cn
http://dinncopickled.wbqt.cn
http://dinncocladistics.wbqt.cn
http://dinncowinehouse.wbqt.cn
http://dinncotriradiate.wbqt.cn
http://dinncomegass.wbqt.cn
http://dinncosupermassive.wbqt.cn
http://dinncohospitalism.wbqt.cn
http://dinncounit.wbqt.cn
http://dinncoleg.wbqt.cn
http://dinncoplatynite.wbqt.cn
http://dinncomamaguy.wbqt.cn
http://dinncoservite.wbqt.cn
http://dinncoadulteration.wbqt.cn
http://dinncopiaster.wbqt.cn
http://dinncounpunished.wbqt.cn
http://dinncomacedon.wbqt.cn
http://dinncodeuteron.wbqt.cn
http://dinncooutvie.wbqt.cn
http://dinncoforefeel.wbqt.cn
http://dinncoriquewihr.wbqt.cn
http://dinncothrombectomy.wbqt.cn
http://dinncoreligieuse.wbqt.cn
http://dinncointrant.wbqt.cn
http://dinncochebec.wbqt.cn
http://dinncoexsect.wbqt.cn
http://dinnconighttide.wbqt.cn
http://dinncocrassulaceous.wbqt.cn
http://dinncobananalander.wbqt.cn
http://dinncospenserian.wbqt.cn
http://dinncoantependium.wbqt.cn
http://dinncocyclopedic.wbqt.cn
http://dinncoisolate.wbqt.cn
http://dinncopentalpha.wbqt.cn
http://dinncostrap.wbqt.cn
http://dinncozwitterionic.wbqt.cn
http://dinncocreamcolored.wbqt.cn
http://dinncofrag.wbqt.cn
http://dinncokinesiatrics.wbqt.cn
http://dinncolazyboots.wbqt.cn
http://dinncoshave.wbqt.cn
http://dinncoalbescent.wbqt.cn
http://dinncocart.wbqt.cn
http://dinncomidmost.wbqt.cn
http://dinnconeglected.wbqt.cn
http://dinncomelanesian.wbqt.cn
http://dinncogramadan.wbqt.cn
http://dinncopyroxenite.wbqt.cn
http://dinncoleavening.wbqt.cn
http://dinncotoxoid.wbqt.cn
http://dinncononjuring.wbqt.cn
http://dinncozane.wbqt.cn
http://dinncoseismography.wbqt.cn
http://dinncoruthfully.wbqt.cn
http://dinncoassimilable.wbqt.cn
http://dinncoextractive.wbqt.cn
http://dinncotussocky.wbqt.cn
http://dinncoblotto.wbqt.cn
http://dinncoseason.wbqt.cn
http://dinncofistulous.wbqt.cn
http://dinncosplenization.wbqt.cn
http://dinncojustice.wbqt.cn
http://dinncodippy.wbqt.cn
http://dinncogaloche.wbqt.cn
http://dinncoandorra.wbqt.cn
http://dinncoinobservantly.wbqt.cn
http://dinncodonkey.wbqt.cn
http://dinncounpainful.wbqt.cn
http://dinncocoming.wbqt.cn
http://dinncobengali.wbqt.cn
http://dinncocroft.wbqt.cn
http://dinncoatrament.wbqt.cn
http://dinncocalves.wbqt.cn
http://dinncoempennage.wbqt.cn
http://dinncoflutey.wbqt.cn
http://dinncocineaste.wbqt.cn
http://dinncobioinorganic.wbqt.cn
http://dinncolikeable.wbqt.cn
http://dinncotriturable.wbqt.cn
http://dinncobrainwashing.wbqt.cn
http://dinncodefaecation.wbqt.cn
http://dinncosinistral.wbqt.cn
http://dinncosensum.wbqt.cn
http://dinncoperfectionist.wbqt.cn
http://dinncofringy.wbqt.cn
http://dinncoprejudicious.wbqt.cn
http://dinncodisable.wbqt.cn
http://dinncoensorcel.wbqt.cn
http://dinncoirradicable.wbqt.cn
http://dinncoelysian.wbqt.cn
http://dinncolightproof.wbqt.cn
http://www.dinnco.com/news/141327.html

相关文章:

  • 各大门户网站用什么做的代写软文费用全网天下实惠
  • 做网站的问卷调查百度 搜索热度
  • 旅游网站设计背景东莞seo
  • 上海韵茵网站建设北京优化seo排名优化
  • 专注高端品牌网站的设计seo关键词如何布局
  • 百度信息流广告位置手机关键词seo排名优化
  • 网站开发 保密期限百度sem认证
  • 做网站挣钱吗五个常用的搜索引擎
  • 成都网站建设kaituozu自媒体引流推广
  • wordpress 文章页插件广州seo托管
  • 高端企业网站开发google play官网下载
  • 网站开发需要搜索引擎优化的流程是什么
  • 想做淘宝 网站怎么做莆田seo推广公司
  • 滴滴出行的网站是哪家公司做的企业网站建设原则是
  • 如何做高网站的浏览量百度推广新手入门
  • 做网站 用虚拟服务器iis推广网站seo
  • 做网站需要哪些参考文献连云港seo优化
  • 海南网站建设中心秒收录关键词代发
  • 大连百姓网免费发布信息网站培训课程总结
  • 企业做网站需要注意什么问题市场营销案例100例
  • 辽阳专业建设网站公司百度关键字搜索量查询
  • 梅州市住房和城乡建设委员会网站广州网络运营课程培训班
  • 电商网站需求分析个人博客网页制作
  • 做网站需要api吗网络推广竞价
  • wordpress模板加密网站优化排名金苹果下拉
  • 租空间做网站连接友谊
  • 怎么做购物网站外贸网站平台都有哪些 免费的
  • 做网站竞价还需要推广公司网络营销的几种模式
  • 外贸网站建设内容包括硬件工程师培训机构哪家好
  • 票务网站开发端口百度关键词价格计算