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

网站建设 设计 优化 维护网站按天扣费优化推广

网站建设 设计 优化 维护,网站按天扣费优化推广,网站建设管理职责,衡阳做网站建设的公司文章目录1、什么是Makefile?(1)makefile关系到了整个工程的编译规则。(2)makefile带来的好处就是——“自动化编译”(3)make是一个命令工具,是一个解释makefile中指令的命令工具2、为…

文章目录

  • 1、什么是Makefile?
    • (1)makefile关系到了整个工程的编译规则。
    • (2)makefile带来的好处就是——“自动化编译”
    • (3)make是一个命令工具,是一个解释makefile中指令的命令工具
  • 2、为什么使用Makefile?
  • 3、gcc输出文件类型及编译与链接
    • (1)编译:即把源文件编译成中间代码文件(即 Object File),在Windows下是 .obj 文件,UNIX下是 .o 文件
    • (2)链接:把大量的Object File合成执行文件
    • (3)库文件(.lib 或 .a)
    • (4)编译与链接的一些常识
  • 4、Makefile规则(最基本的使用常识)
    • (1)基本规则:depend中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行(核心所在)
    • (2)执行顺序(Makefile中的第一个目标会被作为其默认目标)
    • (3)Makefile变量(相当于C中的宏定义)
    • (4)变量的引用
    • (5)通配符
    • (6)简单使用实例

前面我们学习工程的编译与调试是通过task.json文件和launch.json文件来配置的,那么对于一个大型的复杂工程来说,要是像这样一个一个的进行配置,这是一个不现实的事情,所以这时候使用Makefile文件就很方便了。

接下来我们将对Makefile进行简单的认识与学习,掌握一些基本的使用方法。

1、什么是Makefile?

Makefile有效地描述这些文件之间的依赖关系以及处理命令,当个别文件改动后仅执行必要的处理,而不必重复整个编译过程,可以大大提高软件开发的效率。

(1)makefile关系到了整个工程的编译规则。

一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

(2)makefile带来的好处就是——“自动化编译”

一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

(3)make是一个命令工具,是一个解释makefile中指令的命令工具

一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。

2、为什么使用Makefile?

对于一个大型软件,其编译、维护是一个复杂而耗时的过程。它涉及到大量的文件、目录,这些文件可能是在不同的时间、由不同的人、在不同的地方分别写的,其中一些是程序,有些是数据,有些是文档,有些是衍生文件。甚至参与开发的人员也不一定清楚所有文件的细节,包括如何处理它们。
此外,构成软件的文件数目可能达到成百上千,甚至成千上万个,开发过程中当修改了少量几个文件后,往往只需要重新编译、生成少数几个文件。

3、gcc输出文件类型及编译与链接

gcc是编译器,编译完后常见的输出文件及其含义如下
在这里插入图片描述

(1)编译:即把源文件编译成中间代码文件(即 Object File),在Windows下是 .obj 文件,UNIX下是 .o 文件

1)编译时需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只要所有的语法正确,编译器就可以编译出中间目标文件。一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。

(2)链接:把大量的Object File合成执行文件

1)链接时,主要是链接函数和全局变量,使用这些中间目标文件(O文件或是OBJ文件)来链接合成所需要的程序。

(3)库文件(.lib 或 .a)

1)链接器并不管函数所在的源文件,只管函数的中间目标文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标文件打个包,在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。

(4)编译与链接的一些常识

1)源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。
2)在编译时,编译器只检测程序语法,和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。
3)而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,就会报链接错误

4、Makefile规则(最基本的使用常识)

(1)基本规则:depend中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行(核心所在)

在这里插入图片描述
1)target:目标,可以是一个中间文件,也可以是最终的执行文件
2)depend:依赖,指要生成目标文件所需要的文件或目标
3)command:make需要执行的命令

(2)执行顺序(Makefile中的第一个目标会被作为其默认目标)

默认执行第一条,在执行第一条时,先找所有的依赖文件,如果没有,继续往下找有没有脚本能生成这个依赖文件,如果有就会先执行下面生成依赖文件的语句(make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件

使用实例:例如这里的prog.o是下个Makefile规则产生的,所以到第一个规则的时候,找不到依赖项,他会继续向下执行
在这里插入图片描述

(3)Makefile变量(相当于C中的宏定义)

1)makefile中的变量是一个字符串,可以理解为宏定义
2)makefile变量定义的三种形式:
OBJ = a b c 表示 OBJ 就是 a b c 这三个,不能改变了
OBJ := a b c 表示 OBJ 是 a b c 但可以用 += 再去追加
OBJ += d 表示 OBJ 变量添加了 d 这一个

(4)变量的引用

a)变量的命名中对大小写是敏感的,即一个小写变量,其的大写形式代表的是另一个变量
b)变量的声明时需要赋初值,使用的时候需要在变量名前加 $ ,且最好使用()或{}把变量包括起来(可以理解为C中的宏定义)
在这里插入图片描述

(5)通配符

1)% 表示任意一个
2)* 表示所有
3)? 表示匹配一个未知的东西

(6)简单使用实例

在这里插入图片描述

1)每一个 .o 文件都有一组依赖文件,而这些 .o 文件又是执行文件myproject的依赖文件。依赖关系的实质上就是说明了目标文件是由哪些文件生成的,即目标文件是由哪些文件更新的。

2)定义依赖关系后续的那一行定义了生成目标文件的操作系统命令,这个操作命令一定要以一个Tab键作为开头

3)make会比较targets文件和depend文件的修改日期,如果target不存在的话,或者depend文件的日期要比targets文件的日期要新的话,那么make就会执行后续定义的命令。

4)如果targets所依赖的.o文件不存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。

5)clean没有被第一个目标文件直接或间接关联,那么它后面所定义的命令将不会被自动执行,但是其可以显示调用,即make clean命令——来清除所有的目标文件,以便重新编译
在这里插入图片描述

6)隐晦规则:只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,即make找到一个test.o,那么test.c就会自动加到对应依赖文件,只需要手动添加对应的头文件即可。并且 gcc -c testc 也会被推导出来。所以上面的可以简写为如下形式
在这里插入图片描述

以上仅仅是Makefile的简单使用知识
参考链接:
https://blog.csdn.net/haoel/article/details/2886
https://blog.csdn.net/weixin_38391755/article/details/80380786/

http://www.yidumall.com/news/82134.html

相关文章:

  • 查邮箱注册的网站二十条疫情优化措施
  • github怎么导入wordpressseo品牌
  • 网站建设推销拜访客户怎么开头优秀企业网站模板
  • 网站维护一般多久全球搜怎么样
  • 嘉兴市建设派出所网站今日的头条新闻
  • 粘土做龙网站视频怎么去推广自己的网站
  • 抚顺网站建设中国新闻网
  • 重庆做网站的站长工具忘忧草
  • 如何做网站费用多少软文推广代表平台
  • 网站建设维护公司资质怎么优化推广自己的网站
  • 淘宝店招免费做的网站有推广关键词排名方法
  • 网站logo图怎么做企拓客app骗局
  • 北京市公安局海淀分局网站备案长春seo外包
  • web开发培训班真人seo点击平台
  • 哪个网站上做ppt比较好怎么做一个公司网站
  • 网站互动功能搜索seo优化
  • 黄石网站设计公司公司宣传网站制作
  • 开发软件需要学什么专业郑州seo网络营销
  • 平利县城乡建设局网站店面怎么做位置定位
  • app维护费用一般多少钱怎么学seo基础
  • 阮一峰wordpress逆冬seo
  • 创意礼物网站建设与管理小程序开发流程
  • 重庆可视化网站制作网络营销产品的首选产品
  • seo建站还有市场吗做整站优化
  • 网站网址ip查询如何把品牌推广出去
  • 富阳网站制作贵州网站seo
  • 制作网页创建站点的步骤微信营销软件有哪些
  • 网站建设销售好做吗百度推广充值必须5000吗
  • 万网网站建设步骤嵌入式培训班一般多少钱
  • 华建建设集团网站百度广告优化