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

网站建设需要哪些设备站长之家seo概况查询

网站建设需要哪些设备,站长之家seo概况查询,wordpress问答汉化,网站建设 技术要求一、目标#xff0c;依赖#xff0c;命令也许大家觉得这个不重要#xff0c;但今天我有了新的认识#xff0c;所以写了下来。这三个就是Makefile的全部#xff0c;但今天我要重点说一下它的执行顺序。每个Makefile都有且只有一个终极目标#xff0c;下设若干子目标#…一、目标依赖命令也许大家觉得这个不重要但今天我有了新的认识所以写了下来。这三个就是Makefile的全部但今天我要重点说一下它的执行顺序。每个Makefile都有且只有一个终极目标下设若干子目标make的规则会检查目标与依赖的时间戳依赖中的某一个比目标新说明目标已经过时需要更新。这里要着重说一下make会将目标的依赖及依赖的依赖全部展开然后才能决定是否需要更新终极目标。a.out/     |    \/       |     \_  /       _       \_/             |            \hello.o       world.o      main.o_/                   |                  \_/                      |                     \hello.c             world.c                main.c对于这个例子相信大家都能写出Makefile。make在解析Makefile时就会生成上面的依赖树它会自底向上比较时间戳若下层的新则执行上层目标所对应的命令然后依次执行上上层的命令因为底层更新了所以上面的都需要更新。如果底层不比上层的新则不执行上层目标所对应的命令这就是make的聪明之处。例如我们更改了hello.c文件make在解析Makefile时首先比较的不是a.out与hello.o谁更新如果make真的这么做那么make就会直接退出因为自你上次执行make时a.out会比hello.o更新而我们修改hello.c并不会影响hello.o的时间戳 而是依赖树的最底端hello.c与hello.o的时间戳因为hello.c的修改目标hello.o的命令会被执行进而触发a.out所对应的命令。目标werld.o与main.o所对应的命令当然不会被执行。make的输出看上去是这个样子的gcc -c hello.cgcc hello.o world.o main.o     在make 的info文档中有这样一段话注意粗体字3.9 How make Reads a MakefileGNU make does its work in two distinct phases.  During the firstphase it reads all the makefiles, included makefiles, etc. andinternalizes all the variables and their values, implicit and explicitrules, and constructs a dependency graph of all the targets and theirprerequisites.  During the second phase, make uses these internalstructures to determine what targets will need to be rebuilt and toinvoke the rules necessary to do so.4 Writing Rules***************A rule appears in the makefile and says when and how to remakecertain files, called the rules targets (most often only one perrule).  It lists the other files that are the prerequisites of thetarget, and commands to use to create or update the target.The order of rules is not significant, except for determining thedefault goal: the target for make to consider, if you do nototherwise specify one.  The default goal is the target of the firstrule in the first makefile.  If the first rule has multiple targets,only the first target is taken as the default.  There are twoexceptions: a target starting with a period is not a default unless itcontains one or more slashes, /, as well; and, a target that definesa pattern rule has no effect on the default goal.  (*Note Defining andRedefining Pattern Rules: Pattern Rules.)二、伪目标伪目标总被认为是过期的总被认为需要被更新。伪目标又称标签之所以这样叫是为了与真实的文件进行区别。那伪目标是如何工作的我们可以将它当作普通文件但不管出现在目标中还是依赖中都以为着它是将要被更新的普通文件。1、伪目标做目标普通文件做依赖这是最常见的一种典型的all伪目标  .PHONY:allall: prog1 prog2       #执行make后会一次生成两个可执行程序prog1:  a.c  ...command...prog2:  b.c ...command...分析在这个Makefile中。.PHONY是第一个目标但它以点开头不会作为终极目标在上面的英文中有解释所以终极目标是allmake的职责所在就是重建这个all目标。因为all是伪目标make命令总认为它需要被更新而更新它需要首先更新prog1 和 prog2 这就达到了一次make而生成两个可执行文件。2、伪目标做目标伪目标又做依赖虽然称为伪目标但也可做依赖目标与依赖是相互转化的就像上面的hello.o它是hello.c的目标又是a.out的依赖.PHONY: all subdir appsall: subdir appssubdir: prog1 prog2apps:  prog3 prog4prog1: a.ccommand...   prog2: b.ccommand...prog3: c.ccommand...prog4: d.ccommand...分析all是终极目标它依赖于subdir 和 apps 因这两个都是伪目标即他们需要被更新。subdir又依赖于prog1 和 prog2 这就回到了上面的那种情况。这种形式经常出现在大的工程中是对上面一种情况的扩展我们可以修改all 或 subdir 或  apps 中的依赖来决定我们需要那些应用程序裁剪掉那些应用程序。你应该听说过内核裁剪与移植吧所谓裁剪就是修改Makefile的目标不生成我们不需要的东东所谓移植就是修改Makefile的编译参数换成其他的编译工具。3、普通文件做目标伪目标做依赖all: progprog: a.c prtcommand....PHONY: prtprt:echo this is prt分析每次执行make时this is prt都会出现在屏幕上。尽管prog不需要被更新但prt中的命令依然要被执行。make会这样来解析prog依赖于prt而prt有需要被更新因为它是伪目标这意味着this si prt会出现在屏幕上prt更新完成后prog目标中的command...就会被执行我们假定a.c没有被更改。事实上我们那个文件也没有更改但是prog目标中的命令还是被执行了info make中不建议这样做A phony target should not be a prerequisite of a real target file;if it is, its commands are run every time make goes to update thatfile.总结在伪目标中始终贯穿着这样一句话伪目标总被认为是需要被更新的。我也是依据这句话来分析上述伪目标的应用。伪目标可以与真实文件重名典型的clean用法因为make知道我们只是想执行clean下的命令而不是去重建一个叫做clean的文件这也是我们有时把它解释称标签的原因。关于上述第二种情况info make中有这样一个解释When one phony target is a prerequisite of another, it serves as asubroutine of the other.  For example, here make cleanall will deletethe object files, the difference files, and the file program:.PHONY: cleanall cleanobj cleandiffcleanall : cleanobj cleandiff             rm programcleanobj :             rm *.ocleandiff :             rm *.diff一、目标依赖命令    这三个是makefile的全部内容现在来说一下它的执行顺序转载于:https://www.cnblogs.com/SFTD/p/3622126.html
http://www.huolong8.cn/news/256752/

相关文章:

  • 建设类建设机械证官方网站WordPress網站放ICP
  • 福清市住房和城乡建设局网站如何创建一个网站0元
  • 自建站推广班级博客网站模板
  • 衡阳网站推广优化公司网站后台数据库丢失
  • 做外国网站网络服务器一台多少钱
  • 个人网站免费空间申请如何选择邯郸做网站
  • 站酷网官网下载宁波建设有限公司
  • 免费seo网站推广在线观看福建注册建设中心网站
  • 做网站代理需要办什么执照室内设计培训价格
  • 电脑建设网站在互联网访问汕头
  • 网站域名解析ip优化大师apk
  • 山东省建设局注册中心网站域名和网站空间
  • 一个域名怎么用来做多个网站做教育网站有什么好处
  • 营销型网站的三元素wordpress登录用添加验证码
  • 宿迁宿豫网站建设wordpress rest图片
  • 上海c网站建设网站开发电子商务
  • 织梦cms一键更新网站无法使用专做排名的网站
  • 如何建网站卖东西WordPress文章 溢出
  • 选择扬中网站建设进京服务的链接
  • 国外的电商网站有哪些方面如何判断网站有cdn加速
  • 如何增加网站的访问量那些网站可做国外零售
  • 兰州网页制作公司网站沈阳建站模板
  • 成都企业建站公司在线咨询西安营销推广
  • 详情页设计多少钱优化大师使用方法
  • 青岛做外贸网站建设谁有马和人做的网站
  • 网站宣传虚假处罚标准天津河西做网站公司
  • 云浮网站建设凡科建站怎么用
  • 上海做展会的网站都有哪些有什么好的网站设计思想的博客
  • 临汾网站开发广州 建设 招聘信息网站
  • 宝应县住房和城乡建设局网站2021中国互联网企业百强名单