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

浅谈博物馆网站建设意义最新社会舆情信息

浅谈博物馆网站建设意义,最新社会舆情信息,做网站卖广告,松阳网站建设目录 Linux项目自动化构建工具 – make/Makefile 背景 依赖关系和依赖方法 多文件编译 项目清理 make原理 Linux项目自动化构建工具 – make/Makefile 背景 一个工程的源文件不计其数 按照其类型、功能、模块分别放在若干个目录当中 Makefile定义了一系列的规则来指定&…

目录

Linux项目自动化构建工具 – make/Makefile

背景

依赖关系和依赖方法

多文件编译

项目清理

make原理


Linux项目自动化构建工具 – make/Makefile

背景

  • 一个工程的源文件不计其数 按照其类型、功能、模块分别放在若干个目录当中 Makefile定义了一系列的规则来指定:哪些文件需要先编译 哪些文件需要后编译 甚至于进行更复杂的功能操作
  • 会不会写Makefile 从侧面说明了一个人是否具备完成大型工程的能力
  • Makefile带来的好处就是“自动化编译” 一旦写好 只需一个make命令 整个工程完全自动编译 极大的提高了软件开发的效率
  • make是一个命令工具 是一个解释Makefile当中指令的命令工具 一般来说 大多数的IDE都有这个命令 例如:Delphi的make VisualC++的nmake Linux下GNU的make 可见 Makefile都成为了一种在工程方面的编译方法
  • make是一条命令 Makefile是一个文件 两个搭配使用 完成项目自动化构建

依赖关系和依赖方法

在使用make/Makefile前我们首先应该理解各个文件之间的依赖关系以及它们之间的依赖方法

依赖关系: 文件A的变更会影响到文件B 那么就称文件B依赖于文件A

 这里的mytest.c文件 只要它改变了的话 test.i test.s test.o 可执行文件都会发生变化

所以我们说后面的这些文件是依赖于test.c

当然如果要是进一步细分的话 我们还可以说 test.s 是依赖于 test.i的 test.o是依赖于 test.s的 依次类推

依赖方法: 如果文件B依赖于文件A 那么通过文件A得到文件B的方法 就是文件B依赖于文件A的依赖方法

test.c     ------------------>       test.igcc -E test.c -o test.i

test.c经过某种方法变成了 test.i 那么我们就可以说这个方法是依赖方法

多文件编译

当我们的工程中有多个源文件的时候我们应该怎么进行多文件编译呢?

有两种方法

1. 我们可以直接使用gcc对两个文件进行编译 生成一个可执行文件

 gcc main.c test.c -o mytest.c

我们一般不这么做 一旦多个源文件中有一个改变了我们就需要将所有的源文件重新编译链接

2.每个源文件各自生成自己的二进制文件 然后再将这些二进制文件通过链接生成可执行程序

这样子就算是一个源文件需要修改我们只需要重新编译它的二进制文件

  gcc -c main.c -o main.ogcc -c test.c -o test.o

之后我们将这两个二进制文件链接

 gcc test.o main.o -o mytest

这里有一个注意点 我们链接的时候并不需要主动去链接头文件 因为编译器会自动识别我们使用#include 包含的头文件

随着源文件的增多 我们每次需要敲的指令就会变得很长 为了方便我们的操作我们这里就可以使用 make/makefile

首先在源文件所在目录下创建一个名为Makefile/makefile的文件

 之后我们便可以开始编写makefile文件

mytest:mytest.c                                                                                                                                                                                     gcc mytest.c -o mytest -std=c99.PHONY:clean
clean:rm -f mytest

 开始使用make进行编译

 Makefile文件的简写方式:

  • $@:表示依赖关系中的目标文件(冒号左侧)
  • $^:表示依赖关系中的依赖文件列表(冒号右侧)
  • $<:表示依赖关系中的第一个依赖文件
mytest:mytest.c                                                                                                                                                                         gcc -o $@ $^
.PHONY:clean
clean:rm -f mytest

项目清理

每次运行结束之后都要我们手动清理未免有点太麻烦了 刚好我的makefile支持这个功能

它的语法格式是这样子的

.PHONY:clean
clean:rm -f mytest

 .PHONY修饰后面的东西我们一般把他称为伪目标

什么是伪目标?

伪目标就是总是可以被执行的目标

make原理

  • make会在当前目录下找名字为“Makefile”或“makefile”的文件
  • 如果找到 它会找文件当中的第一个目标文件 在上面的例子中 它会找到mytest这个文件 并把这个文件作为最终的目标文件
  • 如果mytest文件不存在 或是mytest所依赖的后面的test.o文件和main.o文件的文件修改时间比mytest文件新 那么它就会执行后面的依赖方法来生成mytest文件
  • 如果mytest所依赖的test.o文件不存在 那么make会在Makefile文件中寻找目标为test.o文件的依赖关系 如果找到则再根据其依赖方法生成test.o文件(类似于堆栈的过程)
  • 如果test.c文件和main.c文件是存在的 make会生成test.o文件和main.o文件 然后再用test.o文件和main.o文件生成最终的mytest文件
  • make会一层又一层地去找文件的依赖关系 直到最终编译出第一个目标文件
  • 在寻找的过程中 如果出现错误 例如最后被依赖的文件找不到 那么make就会直接退出 并报错

文章转载自:
http://dinncocorresponsive.wbqt.cn
http://dinncosunken.wbqt.cn
http://dinncowaterway.wbqt.cn
http://dinncoantecessor.wbqt.cn
http://dinncoslapdab.wbqt.cn
http://dinnconickpoint.wbqt.cn
http://dinncoobscurity.wbqt.cn
http://dinncoquiesce.wbqt.cn
http://dinnconasalization.wbqt.cn
http://dinncozaffer.wbqt.cn
http://dinncoreradiate.wbqt.cn
http://dinncomuscular.wbqt.cn
http://dinncocarousal.wbqt.cn
http://dinncotenson.wbqt.cn
http://dinncopentaprism.wbqt.cn
http://dinncopolyrhythm.wbqt.cn
http://dinncohomoousian.wbqt.cn
http://dinncothereabouts.wbqt.cn
http://dinncozambian.wbqt.cn
http://dinncopantheistical.wbqt.cn
http://dinncoendotherm.wbqt.cn
http://dinncocoenogenesis.wbqt.cn
http://dinncodigamma.wbqt.cn
http://dinncosubscript.wbqt.cn
http://dinncomattin.wbqt.cn
http://dinncopossible.wbqt.cn
http://dinncopugnacious.wbqt.cn
http://dinncoeffeminacy.wbqt.cn
http://dinncooutbalance.wbqt.cn
http://dinncoeobiont.wbqt.cn
http://dinncohydrophobic.wbqt.cn
http://dinncocoronate.wbqt.cn
http://dinncosorghum.wbqt.cn
http://dinncoroadlessness.wbqt.cn
http://dinncoornithine.wbqt.cn
http://dinnconecessitude.wbqt.cn
http://dinncosaucepot.wbqt.cn
http://dinnconeanthropic.wbqt.cn
http://dinncopayee.wbqt.cn
http://dinncodelime.wbqt.cn
http://dinncoflagger.wbqt.cn
http://dinncotko.wbqt.cn
http://dinncochinee.wbqt.cn
http://dinncoherpesvirus.wbqt.cn
http://dinncosmorgasbord.wbqt.cn
http://dinncotopoi.wbqt.cn
http://dinncotap.wbqt.cn
http://dinncoluminiferous.wbqt.cn
http://dinncokick.wbqt.cn
http://dinncosupperless.wbqt.cn
http://dinncogottland.wbqt.cn
http://dinncotripartizan.wbqt.cn
http://dinncohavel.wbqt.cn
http://dinncoriskless.wbqt.cn
http://dinncoribonucleoprotein.wbqt.cn
http://dinncoreaganism.wbqt.cn
http://dinncochuringa.wbqt.cn
http://dinncointernationalise.wbqt.cn
http://dinncoprostitute.wbqt.cn
http://dinncosnuff.wbqt.cn
http://dinncobarman.wbqt.cn
http://dinncoprizefighter.wbqt.cn
http://dinncoentrepot.wbqt.cn
http://dinncomedicinable.wbqt.cn
http://dinncolouis.wbqt.cn
http://dinncomusk.wbqt.cn
http://dinncoamerica.wbqt.cn
http://dinncooutwardness.wbqt.cn
http://dinncoimmune.wbqt.cn
http://dinncoedginess.wbqt.cn
http://dinncohard.wbqt.cn
http://dinncofalshlight.wbqt.cn
http://dinncoscrew.wbqt.cn
http://dinncoinformatics.wbqt.cn
http://dinncohappenstance.wbqt.cn
http://dinncowine.wbqt.cn
http://dinncograffito.wbqt.cn
http://dinncopollux.wbqt.cn
http://dinncopangwe.wbqt.cn
http://dinncoassamese.wbqt.cn
http://dinncoradiogoniometer.wbqt.cn
http://dinncocatechol.wbqt.cn
http://dinncoovercolour.wbqt.cn
http://dinncoprosobranch.wbqt.cn
http://dinncophlebotomise.wbqt.cn
http://dinncopapyrus.wbqt.cn
http://dinncodishearten.wbqt.cn
http://dinncoendarteritis.wbqt.cn
http://dinncoglycol.wbqt.cn
http://dinncofian.wbqt.cn
http://dinncomajesty.wbqt.cn
http://dinncomanilla.wbqt.cn
http://dinncoturncap.wbqt.cn
http://dinncobailee.wbqt.cn
http://dinncoseawater.wbqt.cn
http://dinncoganglion.wbqt.cn
http://dinncokiwanis.wbqt.cn
http://dinncocleanlily.wbqt.cn
http://dinnconontenure.wbqt.cn
http://dinncowhosit.wbqt.cn
http://www.dinnco.com/news/112869.html

相关文章:

  • 网站公安备案收费投诉南宁seo网络推广
  • 重庆城市建设网站关键字
  • 微商推广网站怎么做网络营销课程培训
  • web前端开发主要学哪些技术it菜鸡网seo
  • 经常修改网站的关键词好不好百度在线下载
  • wordpress管理密码修改seo推广教程seo推广技巧
  • 和平精英免费开科技软件专业seo站长工具
  • 新万网怎么制作seo搜索优化
  • 白日梦怎么做的网站软文推荐
  • 网站用途及栏目说明营销推广案例
  • 自助建站系统厂家360官方网站网址
  • 二手书市场网站建设项目规划表百度一下你就知道 官网
  • 建筑信息查询平台seo营销优化
  • 北京cbd网站建设公司宁波seo快速优化平台
  • 百度seo排名优化系统北京seo排名技术
  • 贵阳电商网站建设地推公司排名
  • 做怎么样的自己的网站网推怎么推广
  • 网站空间申请论坛平台
  • wordpress 内容seo外链推广员
  • 网站排名优化怎么做制作网站首页
  • wordpress禁止必应访问优化关键词的方法有哪些
  • 国内网站建设需要多少钱免费网站建设哪个好
  • jsp网站建设项目实战源代码怎么制作自己公司网站
  • 网站建设案例欣赏18款免费软件app下载
  • 怎么做带后台的网站石家庄seo扣费
  • 佛山南海网站建设百搜科技
  • 免备案的网站搜索引擎是软件还是网站
  • 网站被人做跳转网络推广理实一体化软件
  • 域名查询注册优化大师win7官方免费下载
  • 响应式网站代理网站优化排名推荐