构建无忧:探索 Linux 项目自动化构建神器-make/Makefile

这篇具有很好参考价值的文章主要介绍了构建无忧:探索 Linux 项目自动化构建神器-make/Makefile。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维

一.make/Makefile的介绍

1.理解make/Makefile

编写Makefile是Linux开发中一项重要的技能,熟练的运用这个工具能提高编译效率,帮助你完成大型工程。Makefile带来的最大好处就是——自动化编译,一旦将Makefile文件写好,只需要一个make命令,即可完成预期的编译,大大提高了软件开发的效率。

二.make/Makefile的使用

1.基本使用

下面我来简单演示下其功能:
例如现在mycode.c文件下编写了如此代码:
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
正常情况下我们想要编译这段代码,会进行这样的操作:
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
如此一行在只需编译一个文件时倒也不麻烦,但是在以后进行更大规模的开发时,一句一文件的编译就显得繁琐。这时就能用上我们自动化构建工具make/Makefile了。首先我们在同目录下创建Makefile文件用来编写依赖关系与方法:
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
其中的clean可以方便删除生成的文件:
现在我们再想编译mycode.c只需输入命令make即可:
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维

2.PHONY

接下来在我想要多次编译时,其给出了这样的提示:
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
他说mycode可执行文件已经是最新的了,没有必要再次编译生成。我们知道文件包括文件内容和文件属性,其中修改时间是文件的重要属性。而自动化构建工具为了提升编译效率做了规定:当源文件的修改时间新与可执行文件时,说明源文件进行了修改,会重新进行编译,反之不会。
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
我们在修改过mycode.c的内容后,利用stat命令查看文件属性可以观察到,修改时间发生了变化,这是就可以在使用make再次编译生成了。

Modify:文件内容(修改内容会更新)
Change:文件属性(如文件权限)
Access:访问文件

那如果我们不想通过比较时间直接能编译文件该如何操作呢?这里就要了解到PHONY
PHONY修饰的称为伪目标,其特点就是总是被执行的。
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维

构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
PHONY使得某个依赖关系总是被执行。

3.特殊符号拓展

我们可以使用 $^ 代替依赖关系中冒号右边的文件$@ 代表冒号左边的文件 如果冒号右边有多个文件时可以用 $< 代表第一个文件:
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维

构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
从上图我们可以看到输入make命令后,会显示我们编写的依赖方法,如果我们不想显示,可以怎么操作呢?
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维
这样再进行操作时就不会有任何提示了。
构建无忧:探索 Linux 项目自动化构建神器-make/Makefile,Linux入门,linux,自动化,运维文章来源地址https://www.toymoban.com/news/detail-519267.html

到了这里,关于构建无忧:探索 Linux 项目自动化构建神器-make/Makefile的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux--自动化的构建项目:make、Makefile

    make是一个命令 Makefile是一个文件 Makefile的构成: ①依赖关系 ②依赖方法 编写Malefile文件的最终目标是生成项目,换句话说就是,想让Makefile把我的源代码编译,自动形成可执行文件 示例: 注:.PHONY这个的作用是,修饰对象总是被执行(例如:即使已删除,但依旧可以

    2024年02月12日
    浏览(23)
  • 【Linux】项目自动化构建工具 - make/Makefile

    会不会写makefile,从侧面说明了一个人是否具备完成大型工程的能力。 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的

    2024年02月04日
    浏览(36)
  • Linux:项目自动化构建工具——make/Makefile

    前言: 本章主要内容有认识与学习 Linux 环境下如何使用项目自动化构建工具—— make/makefile 。 当我们编写一个较大的软件项目时,通常需要将多个源文件编译成可执行程序或库文件。为了简化这个过程,我们可以使用 make 工具和 Makefile 文件。 Makefile 文件可以帮助我们 自动

    2024年02月13日
    浏览(30)
  • 【Linux】项目自动化构建工具make/makefile

    🏖️作者:@malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 本篇文章我们将要讲解的是项目自动化构建工具make与makefile。 一、make/makefile的背景 会不会写makefile,从一个侧面说明了一

    2024年02月03日
    浏览(41)
  • Jenkins自动化构建部署前端项目(Linux+gitee)

    本文讲述了Jenkins自动化构建部署前端项目,内容包括Linux系统安装Jenkins、如何配置构建项目并发布到目标服务器。 因公司系统项目众多,前端项目打包麻烦,项目代码管理混乱,因此需要gitee+Jenkins做自动化构建,优化项目打包流程及代码管理。 本次教程可实现最简单的自动

    2024年02月03日
    浏览(41)
  • 【Linux】项目自动化构建工具——make/Makefile及拓展

    1、背景知识 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作 makefile带来的好处就是——“自动化编译”,一旦

    2023年04月27日
    浏览(37)
  • 【Linux】Linux下的项目自动化构建工具——make和makefile

            大家好,好久不见!今天小狮子为大家带来的文章是一篇关于Linux下的项目自动化构建工具——make和makefile的博客,希望能帮助到大家。         当我们进行涉及多文件的工程开发时,我们需要对很多不同类型、不同功能,存在于不同目录下的源文件进行编译操作,

    2024年02月13日
    浏览(33)
  • Linux项目自动化构建工具-make/Makefile以及git三板斧

    是否会写make/makefile,从侧面反映了一个程序员是否具备完成大型工程的能力。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更

    2024年02月16日
    浏览(31)
  • Linux工具【2】(调试器gdb、项目自动化构建工具make/Makefile)

    在上一篇文章中介绍了Linux中的编辑器vim与编译器gcc与g++: 戳我看vim与gcc详解哦 在本篇文章中将继续来介绍Linux中的工具: 调试器gdb与项目自动化构建工具make/Makefile 在Windows环境中,我们使用vs时,常常会逐过程与逐语句地调试代码以更高效地寻找到错误的位置。在Linux中也

    2024年02月12日
    浏览(39)
  • 【Linux】Linux编译器-gcc/g++ && Linux项目自动化构建工具-make/Makefile

    目录 Linux编译器-gcc/g++使用 1.背景知识  Linux中头文件的目录在 Linux 库 条件编译的典型应用 2.gcc如何完成 动态库 vs 静态库 debug release Linux项目自动化构建工具-make/Makefile 背景 用法 特殊符号  预处理(去注释,头文件展开,条件编译,宏替换) 编译(生成汇编) 汇编(生成

    2024年02月20日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包