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

怎么做集团网站搜索风云榜

怎么做集团网站,搜索风云榜,网站建设合同要交印花吗,企业手机网站建设方案make/Makefile使用介绍 make是一个命令makefile是一个在当前目录下存在的一个具有特定格式的文本文件 ​ 下面我们设计一个场景&#xff0c;实现make命令对我们code.c文件进行编译和删除。 1 #include<stdio.h> 2 3 int main() 4 { 5 printf("hello,world!…

make/Makefile使用介绍

  • make是一个命令
  • makefile是一个在当前目录下存在的一个具有特定格式的文本文件

​ 下面我们设计一个场景,实现make命令对我们code.c文件进行编译和删除。

  1 #include<stdio.h>  2   3 int main()  4 {  5   printf("hello,world!\n");6   return 0;         7 }                                                                                                

​ 以下是makefile的内容:

  1 myexe:code.c //依赖关系2   gcc code.c -o myexe //依赖方法3 .PHONY:clean //clean是伪目标4 clean: //可不写依赖目标5   rm -f myexe  //依赖方法

.PHONY修饰的是伪目标,意思是总是被执行的,依赖方法总是会被执行,不会被任何情况拦截,想执行就执行。我们在命令行输入make就可以对code.c文件进行编译,生成myexe可执行文件,make clean就可以删除生成的可执行文件myexe。现实中,有了依赖关系依赖方法就可以描述清楚一件事情的原因和做法,达到我们的目标。

make后面跟着目标,只有make就会执行第一个扫描到的目标的依赖方法。如果我们连续两次make就会发现报错。

image-20231105102624286

​ 原因是我们对code.c编译过一次后并没有对原文件进行修改,重新编译也是浪费时间和资源,所以就不会再帮我们重新编译了。但如果我们对myexe加上.PHONY修饰的话,就可以无视拦截。

​ 这种拦截可以提高编译效率,对于大型项目如果我们只修改了一个小文件就要把整个项目重新编译一遍就有点浪费时间了,这种情况下只需要重新编译修改了的文件即可。大部分情况下没问题,问题的产生不仅仅是修改新文件就能解决的,有些历史问题需要重新清理项目才能解决。

​ 那么问题来了,编译器怎么知道我们有没有修改文件呢?

本质是对比源文件和可执行文件的修改时间,因为一定是现有源文件才有可执行文件,当源文件的修改时间 < 可执行文件的修改时间就说明没有更改,反之则说明更改了源文件内容

文件的ACM时间

​ 一个文件有三种时间(文件=内容+属性)

  • Access:最近一次读取文件的时间
  • Modify:最近一次修改文件内容的时间
  • Change:最近一次修改文件属性的时间

​ 关于ACM时间变化的细节:

  • 一般情况下Modify更改会带动Change一起更改,因为Modify更改会发生文件大小的改变,就相当于更改了文件属性。更改文件的权限此时Change也会变化,因为这些都是对文件属性的更改。

  • Access时间理论上只要是我读取/打开了文件就会发生变化,但实际并不如此,这里有两种情况:

    1. 读取/打开好几次文件Access才会发生变化
    2. 只有修改了文件内容,再读取/打开Access才会发生变化

    造成这种现象的原因是一个文件被查看的频率非常高,每次查看都要更改Access,本质就是访问磁盘,如果是这样那么Linux系统就会充满大量访问磁盘的IO操作变相降低系统效率,所以就对文件的Access时间的更改进行了一些限制

touch [文件名]可以在不更改内容的情况让文件的时间变成最新的。

make/Makefile拓展

推导性

make/makefile具有推导能力,如果当前目标依赖的文件不存在则会向下搜索去找以依赖文件为目标文件的依赖文件(一直套娃),直到某一个目标文件的依赖文件存在,就逐步往回执行依赖方法,如果搜索完了也没有找到就会退出并报错。

变量

makefile里可以设置变量,也可以对变量重新赋值

  1	src=code.c //定义变量2 target=myexe3 cc=gcc4 5 6 $(target):$(src) //&(变量名)7   $(cc) $(src) -o $(target)       8 .PHONY:clean9 clean:10   rm -f myexe

其他

makefile对于目标文件和依赖目标可以用特定符号表示

  1 myexe:code.c2   gcc $^ -o $@ //$^代表冒号右边所有文件,$@代表冒号左边所有文件3 .PHONY:clean4 clean:5   rm -f myexe

makemake clean的时候每次都会有打印出指令比较显眼,在依赖方法前加上@即可不显示指令,以及可以写多条依赖方法

  1 myexe:code.c2   @gcc $^ -o $@3   @echo "编译文件"  4 .PHONY:clean      5 clean:        6   @rm -f myexe    7   @echo "清理文件"

image-20231105120604147

​ 以上语法拓展也可以组合使用。

http://www.yidumall.com/news/3283.html

相关文章:

  • 网站域名备案在阿里云怎么做哪些网站推广不收费
  • 网站商业模板软件制作
  • 巩义自助建站优化推广用哪个平台效果好
  • 网站建网站建设营销方案网站
  • 贵阳网站开发价格网站宣传费用
  • 教育网站建设的雷区友情链接出售平台
  • axure做网站教学视频关键词搜索量全网查询
  • 网站设计网络推广商贸平台宁波网站推广方案
  • 安庆做网站赌博代理帮别人推广app赚钱
  • 制作微网站的平台做百度推广员赚钱吗
  • 网站后台动态播放怎么做的免费网站安全检测
  • ui交互设计做什么宁波seo
  • 做数据权威的网站有哪些北京效果好的网站推广
  • 企业网站优化广场舞父母不求咋报答同城推广引流平台
  • 做贵网站多少钱成都网站排名优化公司
  • 自己搭建网站怎么搭建利尔化学股票股吧
  • 如何制作网站有什么功能
  • wordpress英文博客模板seo算法优化
  • 高端网站建设网站建设设计思路seo排名点击首页
  • 西安网红打卡地seo关键词优化排名推广
  • 做网站一定要认证吗简单网站建设优化推广
  • 微信网站制作北京朔州网站seo
  • 专门做照片的网站抖音关键词优化排名
  • 哪个网站做的ppt模板好小红书seo排名帝搜软件
  • 电子商务网站开发与建设试卷怎么免费自己做推广
  • 投资网站建设爱站seo工具
  • 化州网站建设网站优化排名推广
  • 做一个网站需要多少钱大概费用宁波seo外包费用
  • 网站外链怎么做网站怎样做推广
  • 做论坛网站需要多大空间电商网站策划