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

关于校园网站建设的建议专业网络推广

关于校园网站建设的建议,专业网络推广,上海的重大新闻,怎么注册17做网站目录 make/Makefile概念和关系 make/Makefie的使用 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重…

目录

make/Makefile概念和关系

make/Makefie的使用


 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作 makefile 带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

make/Makefile概念和关系

make是一条命令,makefile是一个文件(在当前源代码路径下)。

makefile是一个围绕依赖关系依赖方法构建的一个自动化编译的工具。

依赖关系就像是你学生时代和你爸的关系,你依赖于你爸生活,但是makefile在使用时不能只表明依赖关系,你打电话给你爸,说你是他儿子,然后就把电话挂掉了,你爸也很懵逼,不知道你要干啥,你打电话给你爸说你是他儿子(依赖关系)然后应该表明你要干啥(依赖方法),比如你要你爸给你打生活费,打生活费这个行为就是一个依赖方法,只有依赖关系和依赖方法同时具备才能做成一件事情,才能从你爸那里拿到生活费。依赖关系和依赖方法是相对应的,必须是正确的依赖关系和依赖方法,你不能打电话给你爸说让他帮你做作业,也不能打电话给别人的爸要生活费。

make/Makefie的使用

在当前目录创建一个文件,命名为makefile或者Makefile

 使用vim编辑器打开Makefile

使用make命令执行Makefile文件

上面的文件 test,它依赖 test.o

                   test.o , 它依赖 test.s

                   test.s , 它依赖 test.i

                   test.i , 它依赖 test.c

make是如何工作的 ?

  • make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
  • 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“test”这个文件, 并把这个文件作为最终的目标文件。
  • 如果test文件不存在,或是test所依赖的后面的test.o文件的文件修改时间要比test这个文件新(可以用 touch 测试),那么,他就会执行后面所定义的命令来生成test这个文件。
  • 如果test所依赖的test.o文件不存在,那么make会在当前文件中找目标为test.o文件的依赖性,如果找到则再根据那一个规则生成test.o文件。(这有点像一个堆栈的过程)
  • 如果你的c文件和h文件是存在的,make会生成 test.o 文件,然后再用 test.o 文件声明 make的终极任务,也就是执行文件test了。
  • 这就是整个make的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。
  • 在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错, 而对于所定义的命令的错误,或是编译不成功,make根本不理。
  • make只管文件的依赖性,如果在找了依赖关系之后,冒号后面的文件还是不在,那么就不会执行了。

我们创建项目,也需要清理项目,清理项目也是在Makefile文件中编写

 

 

 像clean这种,没有被第一个目标文件直接或间接关联,那么它后面所定义的命令将不会被自动执行, 不过,我们可以显示要make执行。即命令——“make clean”,以此来清除所有的目标文件,以便重编译。 但是一般我们这种clean的目标文件,我们将它设置为伪目标,用 .PHONY 修饰,伪目标的特性是,总是被执行的。 可以将我们的 test 目标文件声明成伪目标。

我们发现,当我们重复执行make时,它不让我们重复执行,加上 .PHONY 修饰,就可以让文件总是被执行的。编译是一件非常费时间的事,所以一般只编译更新后的文件,如果重复执行make,被编译的文件又没有被更新,make就不会被执行。建议不给生成可执行文件加上.PHONY,因为编译太费时间了,清理项目可以加上。

我们编译的时候是先有源代码,再有可执行程序,源代码的修改时间要更晚一些,如果可执行程序比源代码的修改时间更新,make命令就不会再执行了。make是否执行取决于源代码和可执行程序的修改时间。

.PHONY会更新源代码的修改时间,让源代码的修改时间比可执行程的修改时间序晚,这样make就可以一直执行了。

http://www.dinnco.com/news/53661.html

相关文章:

  • 优质网站建设在哪里政府免费培训 面点班
  • 长沙点梦网站建设seo实战培训教程
  • 协和医院网站建设目标网络安全培训
  • 网站开发供应商网址和网站的区别
  • 微信微网站平台百度双十一活动
  • 静态网站制作wordpress模版今日热搜榜排名最新
  • 成都网站建设询q479185700上快中国宣布疫情结束日期
  • 外贸海外网站推广网址提交入口
  • 做怎么网站新闻稿营销
  • 五莲县财源建设网站优化网站性能监测
  • 互联网精准营销东莞网站关键词优化排名
  • 网店美工设计的四大要点沈阳百度推广优化
  • 盐城seo网站优化企业网站管理系统
  • 邯郸企业做网站费用推广app平台
  • 做平台还是自己做网站网站快速优化排名官网
  • 地方门户网站推广沈阳百度快照优化公司
  • 获取整个网站源码工具seo排名赚app靠谱吗
  • 白银网站模板优化大师的作用
  • 黑客做网站北京seo执行
  • 凡客官方网站专卖店seo引擎搜索网站
  • 门户资源分享网站模板提高销售的10种方法
  • 为什么企业需要建设网站无锡网站建设方案优化
  • 为什么要做外贸网站普通话手抄报文字内容
  • 可以做投票功能的网站百度客服人工电话24
  • b2b2c 网站女教师网课入06654侵录屏
  • 1元云购网站建设网络推广软件有哪些
  • 做企业网站cms广告联盟论坛
  • 培训行业网站建设的重要性女生学市场营销好吗
  • 房山 网站建设域名收录提交入口
  • 哪个网站做律师推广百度2022新版下载