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

美橙表业手表网站windows 安装wordpress

美橙表业手表网站,windows 安装wordpress,上海企业建设网站价格,wordpress 自定义模板下载地址前言 在学习完了Linux的基本操作之后#xff0c;我们知道在linux中编写代码#xff0c;编译代码都是要手动gcc命令#xff0c;来执行这串代码的。 但是我们难道在以后运行代码的时候#xff0c;难道都要自己敲gcc命令嘛#xff1f;这是不是有点太烦了#xff1f; 在vs中…前言  在学习完了Linux的基本操作之后我们知道在linux中编写代码编译代码都是要手动gcc命令来执行这串代码的。 但是我们难道在以后运行代码的时候难道都要自己敲gcc命令嘛这是不是有点太烦了 在vs中我们编写好代码之后直接点击构建项目就会直接帮我们自动化构建好了我们在linux中构建的时候有的时候上百个文件还是比较麻烦的所以到底有没有一些简单的做法呢当然是有的啦~ 这个工具呢就是Makefile/make项目自动化构建工具。 会不会写Makefile从一个侧面说明了一个人是否具有完成大型工程的能力一个工程的源文件不计其数其按类型、功能、模板分别放在一个若干个目录中Makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂的功能操作Makefile带来的好处就是——自动化编译。一旦写好只需要一个make命令整个工程就完成自动化编译极大提高了软件开发的效率make是一个命令工具是一个解释Makefile中指令的命令工具一般来说大多数的IDE都有这个命令比如Delphi的makevisual C的makelinux下GNU的make。可见Makefile都成为了一种在工程方面的编译方法。make是一个命令Makefile是一个文件两个搭配使用完成项目自动化构建。 实例理解 在上图中mytest:text.c与gcc -o mytest test.c是匹配的clean:与rm -f mytest是匹配的。这两组中的每个第一句是依赖关系两组的下面称为依赖方法。 Makefile实现原理 以图为例与上图例子一致为了方便大家查看就在下面也放一份 Makefile文件写好之后当我们实际在命令行运行make的时候对应的make程序会在当前目录下找这个Makefile读取Makefile里面的内容 make会根据Makefile里面的内容完成编译、清理工作。根据Makefile里面的依赖关系将依赖关系以依赖方法形成目标文件。 如上图编译器就会知道依赖关系test.c文件形成mytest的目标文件那么怎么形成呢就是根据对应的gcc -o mytest test.c这样的依赖方法 依赖关系 那么到底如何理解依赖关系和依赖方法呢 这里就给大家将一个小故事咯~便于大家理解 小明是某大学里的在校生这天他没有生活费了。他就打电话给那个人“爸我是你儿子”在小明看来你是我爸你就应该给我生活费但是在老爹看来你小子说这话是啥意思你想干啥老爹是一脸懵啊。小明挂了电话之后就又想了想“爸我是你儿子给我点生活费”这下他老爹才懂了原来他儿子没有生活费了想要生活费。 所以在上面的小故事中“我是你儿子”就是依赖关系“给我点生活费”就是依赖方法。在日常生活中我们也难免得需要拜托谁做一件什么事在计算机中也是一样的完成一件事的必然要素少不了依赖关系与依赖方法。 在上图中的依赖关系如下 其实我们知道程序翻译运行的过程为预处理、编译、汇编和链接。 翻译的过程 gcc命令 说明 预处理 进行宏替换 gcc -E test.c -o test.i -E 让gcc在预处理结束后就停止编译 “从现在开始进行程序的翻译预处理完成就停下来” 宏替换 去注释 头文件展开 条件编译 生成.i文件 编译 生成编译 gcc -S test.i -o test.s -S 只进行编译不进行汇编生成汇编代码 “从现在开始进行程序的编译汇编完成就停下来” 检查代码规范性 检查语法错误 确认无误后汇编 将C语言代码翻译成汇编语言 生成.s文件 汇编 gcc -C test.o -o test.o -C “从开始带现在进行程序的翻译”汇编完成就停下来 将汇编语言编译成二进制目标文件 生成.o文件 链接 gcc test.o -o my.exe 形成可执行程序 生成.exe文件 所以将上面gcc -o mytest test.c指令写完整就是如下 诶很奇怪啊怎么感觉顺序呢不太对在这里我们就要说一下Makefile的工作原理了 Makefile在执行过程中是从上往下进行扫描的当它看到的第一个文件时其实并不是.c文件第一个是.o文件也就是识别的从上往下第一组依赖关系可是识别的依赖关系中的.o文件并不存在所以它下面的命令也就是依赖方法不能被执行就无法形成可执行程序所以Makefile就会自动在后续继续再找下一组依赖关系根据下一组依赖关系来形成.o文件但是在形成.o文件还是需要依赖.s文件依次类推直到遇到依赖文件存在.c文件所以存在.c文件就会有.i文件、.s文件以及.o文件所以就下往上执行了很类似与递归问题。 在上图中 上面的文件 mytest ,它依赖 mytest.omytest.o , 它依赖 mytest.smytest.s , 它依赖 mytest.imytest.i , 它依赖 mytest.c make、Makefile会自动根据文件中的依赖关系进行自动推导帮助我们执行所有相关的依赖方法。 这里注意一下因为Makefile就是类似于一个选择器里面包含了各种指令的选项但是一般默认智慧运行第一个依赖关系所对应的指令所以上面的各组依赖关系是可以乱序的但是必须要将最重要的一条指令放在最前面如下图 上面的依赖关系是为了让大家能够理解这里不建议大家写成这样直接就gcc -o mytest test.c指令就可以。 依赖文件列表 依赖文件列表可以为多个文件按照空格分割分。 mytest:依赖文件1 依赖文件2 依赖文件3 ... 我们刚刚也说了clean:与rm -f mytest是匹配的。根据上图我们也不难看出clean后面是空的也就是说clean不依赖任何文件也就是说 依赖文件列表可以为空。  依赖方法 依赖方法的指令前必须打一个[Tab]键按四下空格会报错。 多条依赖方法 依赖方法不限于一条可以是多条的。  项目清理 .PHONY含义 在Makefile文件执行的时候如下图我们发现在使用make的时候默认执行的是Makefile文件中的第一对的依赖关系和依赖方法 Makefile默认形成第一个可执行文件。 其次我们看下边运行过程 make: mytest is up to date. 当前可执行程序是最新的。 所以Makefile会在源代码的内容没有修改没有变化时Makefile默认就会拦截再一次的make命令。 那么如果今天我们就想让其一直执行不要拦截即使在没有被修改源码的情况下也要让make指令一直执行那么怎么做呢只需要 .PHONY : XXX XXX对应的方法总是要被执行的。 当然我们理解了原理之后小编还是建议大家之后再清理的命令加上总是可执行即可。所以我们目前标准的就是以下5行 以后我们需要的Makefile文件 通配符认识 符号含义$^所有依赖文件列表$所有目标文件$所有依赖文件的第一个文件 在这里我们可以将$理解为取内容。 如下图gcc在编译的过程Makefile会自动进行符号替换 把对应的$就会自动替换为目标文件把对应的$^就会自动替换为所有依赖文件。 变量 Makefile也是支持变量的。但是并不是之前学习的编程语言中的整形、浮点型int/double1/1.0等等。Makefile是解释性的所以它的变量直接就是符号比如说“‘形成的可执行程序’为‘XX’” bin是“目标文件可执行程序”的变量 src是“依赖文件列表”的变量$可以理解为去内容$(bin)取出bin变量中的内容即目标文件$(src)取出src变量中的内容即依赖文件列表$所有的目标文件$^所有的依赖文件列表。 在执行make的时候Makefile就会进行变量替换可以理解成为宏的替换也可以执行程序。 将来你可能会有很多地方遇到使用make的项目与文件那就只需要将变量的内容修改就可以完成不同文件的make指令进行执行就会很简单方便。 make指令打印隐藏 在命令行输入make指令之后系统都会自己打印出我们底层所输入的依赖方法对应的指令那么如何将make指令进行隐藏也就是让它不再打印呢 直接在命令前面加一个“”符号 推荐使用的Makefile模板 bintest.exe srctest.c gcc -o $ $^echo compiler $(src) to $(bin)... .PHONY:clean clean:rm -f $(bin)echo clean project... 其中echo是打印字符串。  如下图就会有提示信息 必熟知知识 为什么Makefile对最新的可执行程序默认不想重新形成 今天我们编译的代码只有一个源文件以后我们编译的源代码是两千个源文件成百上千个源文件在我们修改bug的时候可能只是修改几行代码做完改动之后如果我们要将所有的源文件重新编译一遍那么就是效率很低又或者说如果我们没有修改又make的话那么编译器又会重新编译假如一个文件需要用0.1秒那么成百上千个代码就需要十几分钟甚至几个小时所以效率是极其低的。 所以在Makefile为了调高效率就默认对最新的可执行程序不重新形成。 Makefile怎么知道程序需要被编译的呢 ACM时间是Linux系统下分别代表AccessModify和Change三个时间。 Access文件最近被访问的时间访问Modify : 文件内容最近被修改的时间修改Change : 文件属性最近被修改的时间改变 当然我们要知道的是 源代码与可执行程序的文件内容最近被修改的时间修改一定是不同的。  因为我们基本先写源代码再进行编译所以可执行程序一般是比源代码的时间更新的。如果修改的源代码那么此时源代码比可执行程序的时间更新所以就需要重新编译。 Makefile怎么知道程序需要被编译的呢 对比可执行程序的最近修改时间和源文件最近的修改时间谁更新。如果可执行程序更新就不需要重新编译了反之源文件更新就需要重新编译。 所以我们在用vs写代码的时候出现错误 再修改了很多次仍旧报这个错误这个时候可以重新清理一下重新构建一下重新生成解决方案这个问题就会可能解决。
http://www.dnsts.com.cn/news/88269.html

相关文章:

  • 做肮脏交义的网站做建网站的工作一年赚几百万
  • 怎么在濮阳网站做宣传wordpress人体时钟
  • 免费建立网站的网站都有啥专业商铺装修设计
  • 微网站建设正规公司六安服装网站建设地址
  • 怎样在手机上建网站网站静态首页模板
  • 安徽网站推广营销设计asp公司企业网站模板源代码
  • 做网站广告收入中国建设质量安全协会网站
  • 微餐饮网站建设平台垦利网站设计
  • 最新网站信息网络维护费计入什么科目
  • 做网站怎么切图制作小网站
  • 徐汇做网站公司六盘水网站建设求职简历
  • 常宁网站建设常宁网站建设世界交互设计最好的前10大学
  • 如何开发网站建设业务网站建设英文怎么说
  • 做网站需要公司资质吗济南网站建设_美叶网络
  • asp.net做网站 推荐书籍wordpress 后台地址
  • 怎么做服务器网站pageadmin做的网站的域名必须要备案吗
  • 专业网站建设企业考二建需要什么学历和专业
  • 嘉兴免费做网站网站 成本
  • 天津网站建设招聘单页式网站模板
  • 高定网站做企业的网站都要准备什么手续
  • seo网站结构图wordpress网站属于什么网站吗
  • 手机传奇网站广东响应式网站
  • 辽宁沈阳做网站经典重庆
  • 重庆手机网站制作动漫设计与制作视频
  • 山西建设执业注册中心网站佛山制作做网站
  • 湖北省建设规划网站哈尔滨企业建站系统
  • 浙江平湖建设局网站湛江网红打卡餐厅
  • 科技资讯 哪个网站好wdcp v3搭建WordPress
  • 廊坊模板建站代理wordpress内容页文字红色
  • 两个女孩子怎么做网站自己买服务器做视频网站