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

企业网站推广方法实验报告厦门建网站哪家好

企业网站推广方法实验报告,厦门建网站哪家好,用visual做的网站,河南网站建设制作价格仅供自己学习使用一、Makefile介绍Makefile 或 makefile: 告诉make维护一个大型程序#xff0c; 该做什么。Makefile说明了组成程序的各模块间的相互 关系及更新模块时必须进行的动作#xff0c; make按照这些说明自动地维护这些模块。执行make命令时#xff0c;需要一个 Ma…仅供自己学习使用一、Makefile介绍Makefile 或 makefile: 告诉make维护一个大型程序 该做什么。Makefile说明了组成程序的各模块间的相互 关系及更新模块时必须进行的动作 make按照这些说明自动地维护这些模块。执行make命令时需要一个 Makefile 文件以告诉make命令需要怎么样的去编译和链接程序。 Makefile是一个文本形式的数据库文件其中包含一些规则来告诉make处理哪些文件以及如何处理这些文件。这些规则主要是描述哪些文件(称为target目标文件不要和编译时产生的目标文件相混淆)是从哪些别的文件(称为dependency依赖文件)中产生的以及用什么命令(command)来执行这个过程。二、Makefile里包含什么Makefile里主要包含了五个部分内容显式规则、隐式规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了如何生成一个或多个目标文件。这是由Makefile的书写者明显指出要生成的文件文件的依赖文件生成的命令。2、隐晦规则。由于make有自动推导的功能所以隐式规则可以让我们比较粗糙地简略地书写Makefile这是由make支持的。3、变量的定义。在Makefile中我们要定义一系列的变量变量一般都是字符串这个有点你C语言中的宏当Makefile被执行时其中的变量都会被扩展到相应的引用位置上4、文件指示。其包括了三个部分一个是在一个Makefile中引用另一个Makefile就像C语言中的include一样另一个是指根据某些情况指定Makefile中的有效部分就像C语言中的预编译#if一样。5、注释。和UNIX的Shell脚本一样Makefile中只有行注释 其注释是用“#”字符这个就像C/C中的“//”或者“ /*”。在Makefile中的命令必须要以[Tab]键开始Makefile的默认文件名为GNUmakefile、makefile或Makefile多数Linux程序员使用第三种。 执行make命令时会对磁盘上的文件进行检查如果目标文件的生成或被改动时的时间至少比它的一个依赖文件还旧的话make就执行相应的命令以更新目标文件。目标文件不一定是最后的可执行文件可以是任何一个中间文件并可以作为其他目标文件的依赖文件。引用其它的MakefileMakefile使用include关键字可以把别的Makefile包含进来这很像C语言的#include被包含的文件会原模原样的放在当前文件的包含位置。include的语法是include filename可以是当前操作系统Shell的文件模式(可以保含路径和通配符)Make支持三种通配符 “*”、“”、“[…]”include foo.make *.mk $(bar)等价于 include foo.make a.mk b.mk c.mk e.mk f.mk三、Makefile的规则Makefile文件主要含有一系列的规则每条规则包含以下内容一个目标(target)即make最终需要创建的文件如可执行文件和目标文件目标也可以是要执行的动作如“clean”。一个或多个依赖文件(dependency)列表通常是编译目标文件所需要的其他文件。一系列命今(command)是make执行的动作通常是把指定的相关文件编译成目标文件的编译命令每个命令占一行且每个命令行的起始字符必须为TAB字符。例如有以下的Makefile文件# 一个简单的Makefile的例子# 以#开头的为注释行testprog.o code.ogcc –o test prog.o code.oprog.oprog.c prog.h code.hgcc –c prog.c –o prog.ocode.ocode.c code.hgcc –c code.c –o code.ocleanrm –f *.o上面的Makefile文件中共定义了四个目标test、prog.o、code.o和clean。目标从每行的最左边开始写后面跟一个冒号()如果有与这个目标有依赖性的其他目标或文件把它们列在冒号后面并以空格隔开。然后另起一行开始写实现这个目标的一组命令。在Makefile中可使用续行号(\)将一个单独的命令行延续成几行。但要注意在续行号(\)后面不能跟任何字符(包括空格和键)。一般情况下调用make命令可输入# make targettarget是Makefile文件中定义的目标之一如果省略targetmake就将生成Makefile文件中定义的第一个目标。对于上面Makefile的例子单独的一个“make”命令等价于# make test因为test是Makefile文件中定义的第一个目标所有make首先将其读入然后从第一行开始执行把第一个目标test作为它的最终目标后面的目标的更新都会影响到test的更新。第一条规则说明只要文件test的时间戳比文件prog.o或code.o中的任何一个旧下一行的编译命令将会被执行。但是在检查文件prog.o和code.o的时间戳之前make会在下面的行中寻找以prog.o和code.o为目标的规则在第三行中找到了关于prog.o的规则该文件的依赖文件是prog.c、prog.h和code.h。同样make会在后面的规则行中继续查找这些依赖文件的规则如果找不到则开始检查这些依赖文件的时间戳如果这些文件中任何一个的时间戳比prog.o的新make将执行“gcc –c prog.c –o prog.o”命令更新prog.o文件。以同样的方法接下来对文件code.o做类似 的检查依赖文件是code.c和code.h。当make执行完所有这些套嵌的规则后make将处理最顶层的test规则。如果关于prog.o和code.o的两个规则中的任何一个被执行至少其中一个.o目标文件就会比test新那么就要执行test规则中的命令因此make去执行gcc命令将prog.o和code.o连接成目标文件test。 在上面Makefile的例子中还定义了一个目标clean它是Makefile中常用的一种专用目标即删除所有的目标模块。现在来看一下make做的工作首先make按顺序读取makefile中的规则然后检查该规则中的依赖文件与目标文件的时间戳哪个更新如果目标文件的时问戳比依赖文件还早就按规则中定义的命令更新目标文件。如果该规则中的依赖文件又是其他规则中的目标文件那么依照规则链不断执行这个过程直到Makefile文件的结束至少可以找到一个不是规则生成的最终依赖文件获得此文件的时间戳然后从下到上依照规则链执行目标文件的时间戳比此文件时间戳旧的规则直到最顶层的规则。四、Makefile中的变量Makefile里的变量就像一个环境变量。事实上环境变量在make中也被解释成make的变量。这些变量对大小写敏感一般使用大写宇母。几乎可以从任何地方引用定义的变量变量的主要作用如下保存文件名列表。在前面的例子里作为依赖文件的一些目标文件名出现在可执行文件的规则中而在这个规则的命令行里同样包含这些文件并传递给gcc做为命令参数。如果使用一个变量来保存所有的目标文件名则可以方便地加入新的目标文件而且不易出错。保存可执行命令名如编译器。在不同的Linux系统中存在着很多相似的编译器系统这些系统在某些地方会有细微的差别如果项目被用在一个非gcc的系统里则必须将所有出现编译器名的地方改成用新的编译器名比如编译器的版本不同arm-linux 3.4.1、4.3.2等。如果使用一个变量来代替编译器名那么只需要改变该变量的值。其他所有地方的命令名就都改变了。保存编译器的参数。在很多源代码编译时gcc需要很长的参数选项在很多情况下所有的编译命令使用一组相同的选项如果把这组选项使用一个变量代表那么可以把这个变量放在所有引用编译器的地方。当要改变选项的时候只需改变一次这个变量的内容即可。五、定义变量Makefile中的变量是用一个文本串在Makefile中定义的这个文本串就是变量的值。只要在一行的开始写下这个变量的名字后面跟一个“”号以及要设定这个变量的值即可定义变量下面是定义变量的语法VARNAMEstring使用时把变量用括号括起来并在前面加上$符号就可以引用变量的值 ${VARNAME}make解释规则时VARNAME在等式右端展开为定义它的字符串。变量一般都在Makefile的头部定义。按照惯例所有的Makefile变量都应该是大写。如果变量的值发生变化就只需要在一个地方修改从而简化了Makefile的维护。现在利用变量把前面的Makefile重写一遍OBJSprog.o code.oCCgcctest${ OBJS }${ CC } –o test ${ OBJS }prog.oprog.c prog.h code.h${ CC } –c prog.c –o prog.ocode.ocode.c code.h${ CC } –c code.c –o code.oclean rm –f *.o如源程序为经过变量替换过后的makefile文件六、Makefile的隐含规则在上面的例子中几个产生目标文件的命令都是从“.c”的C语言源文件和相关文件通过编译产生“.o”目标文件这也是一般的步骤。实际上make可以使工作更加自动化也就是说make知道一些默认的动作它有一些称作隐含规则的内置的规则这些规则告诉make当用户没有完整地给出某些命令的时候应该怎样执行。例如把生成prog.o和code.o的命令从规则中删除make将会查找隐含规则然后会找到并执行一个适当的命令。由于这些命令会使用一些变量因此可以通过改变这些变量来定制make。象在前面的例子中所定义的那样make使用变量CC来定义编译器并且传递变量CFLAGS(编译器参数)、CPPFLAGS(C语言预处理器参数)、TARGET_ARCH(目标机器的结构定义)给编译器然后加上参数-c后面跟变量$$ {CC} $ {CFLAGS} $ {CPPFLAGS} $ {TARGET_ARCH} –c $ -o $在上面的例子中利用隐含规则可以简化为OBJSprog.o code.oCCgcctest${ OBJS }${ CC } –o $ $^prog.oprog.c prog.h code.hcode.ocode.c code.hclean rm –f *.o
http://www.zqtcl.cn/news/582518/

相关文章:

  • 百度关键词网站排名优化软件seo服务 收费
  • 中英文切换网站网站建设的关键问题
  • 5款免费网站管理系统wordpress 本地
  • 企业网站制作公司盈利百度云搜索
  • 微云影视自助建站系统大理州建设局网站门户网
  • 构建网站需要会什么意思辽宁省朝阳网站建设
  • 网站建设捌金手指专业1公司域名邮箱注册
  • 建设工程协会网站建设工程合同属于专属管辖吗
  • 网站建设费可分摊几年电子商务网站建设基础
  • wordpress api 发贴北京网站优化seo
  • 青岛网站制作服务商wordpress红包
  • 网站响应式设计如何提高网站文章收录
  • 网站 橙色如何做自己网站的seo
  • 网上商城网站建设公司兰州网站制作公司怎么样
  • 网站的动态图怎么做的获取网站访客qq
  • 黑龙江网站建站建设知名品牌形象设计公司
  • 网站建设去哪可接单怎么做微信小程序平台
  • 做外贸重新设计网站兰州网站建设慕枫
  • 服装销售 网站建设论文搭建企业网站需要什么
  • cnnic网站备案html网站建设代码
  • 金华网站建设明细报价表c苏宁网站开发
  • 在手机上怎么做微电影网站湖南人工智能建站系统软件
  • 网站做的一样算侵权吗站群建站系统
  • 骨干专业建设验收网站xueui wordpress
  • 宁波高质量品牌网站设计厂家世界上有php应用的网站
  • 网站平台建设的重要性响应式网站切图
  • 近期做网站需要什么软件网站制作常见的问题
  • vs做的本地网站甘肃省建设厅门户网站
  • 网站建设合同义务wordpress m1
  • 青海省建设局网站首页wordpress模板建站教程视频