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

学校定制网站建设公司/网站关键词排名seo

学校定制网站建设公司,网站关键词排名seo,php开源公司网站,中升乙源建设工程有限公司网站文章目录 前言一、Makefile的结构二、深入案例三、Makefile中的一些技巧总结 前言 一、Makefile的结构 Makefile 通常由一系列规则组成,每条规则定义了如何从源文件生成目标文件。每个规则又由目标、依赖和命令三部分组成。 下面是 Makefile 规则的基本结构&…

文章目录

  • 前言
  • 一、Makefile的结构
  • 二、深入案例
  • 三、Makefile中的一些技巧
  • 总结


前言

一、Makefile的结构

Makefile 通常由一系列规则组成,每条规则定义了如何从源文件生成目标文件。每个规则又由目标、依赖和命令三部分组成。

下面是 Makefile 规则的基本结构:

target: dependenciescommand1command2...

其中,target 是要生成的目标文件名,dependencies 是生成目标文件所依赖的文件或目录,而 command1、command2 等则是生成目标文件所需执行的命令。

例如,以下的规则:

hello: hello.cgcc -o hello hello.c

指定了一个规则,用于将 hello.c 编译成可执行文件 hello。其中,hello 是目标文件名,hello.c 是依赖的源文件名,而 gcc 则是生成目标文件所需要的命令。注意,在命令行中,我们需要使用 tab 而非空格来缩进命令行。

首先我们先编写一个hello.c:

#include <stdio.h>int main(void)
{printf("Hello World\n");return 0;
}

执行make命令:
在这里插入图片描述
ls查看生成的文件:
这里可以看到生成了一个hello可执行文件。
在这里插入图片描述
执行hello可执行文件:
在这里插入图片描述

二、深入案例

这个 Makefile 有一个 all 目标,依赖于 test1 目标。all 目标包含一行命令 echo hello world,用于输出字符串 “hello world”。test1 目标没有依赖关系,包含一行命令 echo test1,用于输出字符串 “test1”。

当我们执行 make 命令时,make 会首先查找 Makefile 文件,并读取 all 目标。因为 all 目标依赖于 test1 目标,因此 make 会接着查找 test1 目标,并执行其命令。在 test1 的命令执行完成后,make 会回到 all 目标,并执行其命令,即输出字符串 “hello world”。

all : test1echo hello worldtest1 : echo test1

因此,make 命令的输出结果如下:
在这里插入图片描述

三、Makefile中的一些技巧

在命令前面加上@可以不显示出执行的命令:

all : test1@echo hello worldtest1 : @echo test1

执行结果;
这里我们可以看到执行make后没有显示出执行的命令。
在这里插入图片描述

将all和最终可执行文件名放在makefile的第一个目标里面:

hello all : hello.o func.ogcc -o hello hello.o func.ohello.o : hello.cgcc -c -o hello.o hello.cfunc.o : func.cgcc -c -o func.o func.c

对应文件代码:
hello.c:


extern void func(void);int main(void)
{func();return 0;
}

func.c:

#include <stdio.h>void func(void)
{printf("Hello World\n");
}

执行make命令:
在这里插入图片描述
再次执行make命令:
在这里插入图片描述
我们发现这里执行第二次make命令的时候会告诉我们hello已经是最新的了,那么就不会再次进行编译执行了。

在执行Make命令时,Make会根据规则的依赖关系判断哪些规则需要重新执行以及哪些规则可以跳过。

如果Make发现生成目标的依赖文件没有更新,那么就没有必要重新生成目标文件。因此,Make会跳过这条规则,并且不执行规则中的命令。只有当目标依赖关系中的某个文件发生了变化,才会导致相关规则和命令的重新执行。

这种依赖关系可以有效地提高Make的构建效率,避免不必要的重复构建。当你修改了源代码文件时,Make会自动检测出需要重新构建的目标,并生成最新的可执行文件或静态库。

那么加上all又可以起到什么作用呢:

使用make all命令:
在这里插入图片描述
当执行make all时make程序会自动寻找到makefile中的all目标进行执行。

总结

本篇文章主要讲解了makefile的结构和一些小技巧,希望大家能够好好理解并掌握。

http://www.jmfq.cn/news/5236453.html

相关文章:

  • 专做零食的网站/杭州百度快照优化排名
  • 网站开发有哪些语言/seo综合查询什么意思
  • 给别人做的网站涉及到诈骗/怎样申请网站
  • wordpress网站的CDN设置/齐三seo顾问
  • 建设网站计划书/百度推广登录平台
  • 学校网站建设的技术方案/北京seo包年
  • 西宁公司官方网站建设/搜狗搜索网页版
  • 免费制作网络商城网站/百度空间登录入口
  • 网页设计制作图片代码/免费seo快速排名系统
  • 怎么用别人网站做模板/百度经验首页登录官网
  • 怎么介绍自己做的静态网站/深圳seo优化外包公司
  • 吉安做网站的公司/短视频推广策略
  • 南宁营销型网站建设公司哪家好/最新足球消息
  • 长沙网站建设zh68/优化师培训机构
  • 淘宝网站用什么语言做的/武汉大学人民医院洪山院区
  • 免费的网站推广怎么做效果好/寰宇seo
  • 网上商城可行性分析报告/四川最好的网络优化公司
  • 北京+网站建设/全国广告投放平台
  • soho建网站 必须先注册公司吗/长沙全网推广
  • 优化免费网站建设/白山seo
  • 东莞市镇街建设项目监理招标网站/百度seo关键词排名价格
  • 微网站和app的区别/湖南网络优化服务
  • 网站建设风险怎样规避/淘宝客推广
  • 做淘宝客的网站怎么备案/时事政治2023最新热点事件
  • 常州微信网站建设方案/seo优化公司
  • 网站开发工程师能在家工作吗/自己怎么优化网站排名
  • 网站用什么空间好/广州网络推广哪家好
  • 济宁城乡建设局网站/企业网站建设费用
  • 塘厦镇仿做网站/谷歌广告投放
  • 做网站ssl证书必须要吗/最新国际足球世界排名