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

农家乐网站开发互联网外包公司有哪些

农家乐网站开发,互联网外包公司有哪些,简单网站建设设计,wordpress 获取链接地址前言:📕什么是 Makefile? Makefile 是一种文件格式,用于描述如何通过自动化规则构建、编译和管理项目中的文件。它常配合 make 工具使用,后者会根据 Makefile 中定义的规则和依赖关系自动执行相应的构建命令。 最初&am…

前言:📕什么是 Makefile?

Makefile 是一种文件格式,用于描述如何通过自动化规则构建、编译和管理项目中的文件。它常配合 make 工具使用,后者会根据 Makefile 中定义的规则和依赖关系自动执行相应的构建命令。

最初,Makefile 主要用于 C 和 C++ 项目的构建,但它同样适用于其他语言的项目,例如 Java、Python、甚至前端开发中的构建任务。

 ★ make是一条命令makefile是一个文件,两个搭配使用,完成项目自动化构建

1. Makefile 的基础:从编写到执行 

1.1 创建源代码与 Makefile(需要手动创建一个makefile文件)

我们从创建源代码文件 test.cMakefile 开始:

[jkl@VMCentos7 lesson4]$ touch test.c makefile
[jkl@VMCentos7 lesson4]$ ls
makefile  test.c
1.2 编写 Makefile

接着,我们在 Makefile 中编写自动化构建规则:

# Makefile 示例# 定义目标文件和源文件
target = test.exe
source = test.c# 默认目标:编译生成目标文件
$(target): $(source)gcc $(source) -o $(target)# 清理目标:删除编译生成的文件
.PHONY: clean
clean:rm -f $(target)
1.3 编写源代码

然后,我们在 test.c 文件中编写一个简单的 C 语言程序:

#include <stdio.h>int main() {printf("Hello, Linux!\n");return 0;
}
1.4 执行 make 命令

现在,执行 make 命令来自动编译生成目标文件:

[jkl@VMCentos7 lesson4]$ make
gcc test.c -o test.exe
[jkl@VMCentos7 lesson4]$ ls
makefile  test.c  test.exe
[jkl@VMCentos7 lesson4]$ ./test.exe
Hello, Linux!

通过执行 make 命令,make 工具自动检测到 test.c 文件并进行编译,最终生成了 test.exe 可执行文件。


2. Makefile 的工作原理

当我们执行 make 命令时,make 会遵循以下步骤:

  1. make 会查找当前目录中的 Makefile 文件,并读取其中的规则。

  2. 根据 Makefile 中定义的目标文件和依赖关系,make 会决定哪些文件需要重新编译,哪些文件已经是最新的。

  3. 如果目标文件需要重新生成,make 会执行相关的编译命令。

2.1 判断文件是否需要重新编译

make 会通过文件的时间来判断是否需要重新编译。如果源代码文件或依赖文件有修改make 会重新编译目标文件。否则,它会跳过编译步骤。

[jkl@VMCentos7 lesson4]$ make
make: 'test.exe' is up to date.

1. 为什么再次输入make命令会不让我们继续生成目标文件呢???

因为当有大量的文件的时候,编译执行会消耗大量的时间,为了达到更高的效率,因此当源代码没有改变,makefile就会知道只生成一份可执行程序就可以了。

但是此时就有另外的两个问题了,编译器怎么知道哪个文件是没有改变的源代码???如果我们的目的就是想要输入命令则生成目标文件该怎么办???

2. 编译器怎么知道哪个文件是没有改变的源代码???

对比可执行程序最近修改时间与源文件最近修改时间,谁更新?

编写代码和代码生成的可执行程序的修改时间是不一样的,先写的源代码,后才有的代码生成的可执行程序。因此makefile会通过谁的时间更新,来确定到底要不要重新生成可执行程序。通过stat命令可以看到文件的三个时间。
 

.

就是 如果 test.cModify的修改时间新于 test.exemake 会跳过编译,提示:make: 'test.exe' is up to date. 

2.2 使用 .PHONY 强制执行目标

有时候,我们希望强制执行某些目标,比如清理编译生成的文件。此时可以使用 .PHONY 来标记这些目标,确保它们总是被执行,即使目标文件存在。

.PHONY: clean
clean:rm -f $(target)

在命令行中执行 make clean 时,make 会执行 clean 目标,删除生成的 test.exe 文件:

[jkl@VMCentos7 lesson4]$ make clean
rm -f test.exe
[jkl@VMCentos7 lesson4]$ ls
makefile  test.c

3. Makefile 优化技巧

在实际开发中,Makefile 往往需要进行一些优化,尤其是当项目变得越来越复杂时。下面是一些常见的优化技巧,可以帮助你简化 Makefile,提高构建效率。

3.1 使用自动化变量

Makefile 提供了一些自动化变量,能够让你减少代码的冗余。例如:

  • $@:规则的目标文件。

  • $<:规则中的第一个依赖文件。

  • $^:规则中的所有依赖文件。

优化后的 Makefile 可以变得更加简洁:

target = test.exe
source = test.c$(target): $(source)gcc -o $@ $<.PHONY: clean
clean:rm -f $(target)
3.2 使用变量管理文件

当项目文件较多时,我们可以通过变量来管理源文件、目标文件等,减少冗余代码:

CC = gcc
CFLAGS = -WallSRC = test.c
OBJ = $(SRC:.c=.o)
BIN = test.exe$(BIN): $(OBJ)$(CC) -o $@ $^clean:rm -f $(OBJ) $(BIN)

通过变量管理文件,项目的可维护性和扩展性得到提升。

3.3 自动化生成依赖关系

对于大型项目,可能涉及多个源文件之间的依赖关系。在 Makefile 中,可以通过自动化生成这些依赖关系,避免手动维护。

例如,使用 gcc -M 生成依赖文件:

%.o: %.c$(CC) -M $< > $*.d$(CC) -c $< -o $@

这样,每当源文件发生变化时,make 会自动更新依赖关系。


4. 总结

通过使用 Makefilemake 工具,我们可以轻松实现代码编译、链接和清理等任务的自动化,极大提高开发效率。无论是简单的项目,还是复杂的多模块工程,Makefile 都能帮助我们减少手动操作,优化构建过程。

在实际开发中,通过合理利用自动化变量、变量管理、以及生成依赖关系等技巧,我们可以进一步优化 Makefile,提高构建效率和可维护性。掌握 Makefile 的使用,将使你在开发中如鱼得水。

http://www.dtcms.com/wzjs/286279.html

相关文章:

  • 全屋家装成都网站seo
  • 湖州网站设计百度seo优化多少钱
  • 巴中微信开发 做网站珠海seo排名收费
  • 房地产网站建设方案书员工培训内容
  • 网站建设中 gif网络营销员岗位的职责与要求
  • 自学做网站可以赚钱吗网络营销的策略有哪些
  • 网站建设属于什么专业seo在线优化网站
  • 响水县住房和城乡建设局网站微信营销软件手机版
  • 卖建材的网站有哪些百度推广多少钱
  • xxx网站建设规划书app推广项目
  • 做网站点击赚取广告费最佳磁力吧ciliba磁力链
  • 个人免费网站平台关键词seo价格
  • 做酒招代理的网站百度竞价优化软件
  • 精湛的合肥网站建设网页制作公司哪家好
  • 自主设计网站网站的营销推广
  • 企业如何在网站上做宣传百度搜索量排名
  • 咸阳市网站开发黑龙江头条今日新闻
  • 成都手机网站建设哪厂房网络推广平台
  • 怎么做网站筛选功能长春seo外包
  • 高校英文网站建设如何进行网站的推广
  • 四川营销seo神器
  • 网站开发策划书百度广告联盟app下载官网
  • 烟台做网站哪里好关键词是网站seo的核心工作
  • 衡水移动端网站建设百度人工服务热线
  • 建设俄语网站专业seo公司
  • 谷歌seo文章青岛seo网站排名
  • 什么网站做优化最好广东seo价格是多少钱
  • wordpress 4.9.8中文版济南seo排行榜
  • 做漫画网站的需求全网整合营销推广系统
  • 营销型网站设计服务商网站优化培训学校