广告
返回顶部
首页 > 资讯 > 操作系统 >Linux 自动化构建工具make/Makefile的使用详解
  • 870
分享到

Linux 自动化构建工具make/Makefile的使用详解

linux自动化构建工具linux make Makefile 2022-06-05 00:06:37 870人浏览 独家记忆
摘要

目录一、单个文件的编译1、写法一:逐个生成.i、.s、.o文件,最后再生成 test执行文件2、 写法二:一步到位,直接通过 test.c 生成 test 执行文件(推荐)3、 Makefile自动清理二、多个文件的编译

目录
  • 一、单个文件的编译
    • 1、写法一:逐个生成.i、.s、.o文件,最后再生成 test执行文件
    • 2、 写法二:一步到位,直接通过 test.c 生成 test 执行文件(推荐)
    • 3、 Makefile自动清理
  • 二、多个文件的编译(同一目录下)
    • 三、多个文件的编译(不同目录下)

      VS中有一键编译+自动运行,linux也给我们提供了对应的编译方式,虽然不及VS那么便捷,但是相比于手动输入 GCc -o add add.c ,我们一句make就可以搞定

      Makefile是一个文件,能够存放上述 gcc -o add add.c 这种编译指令

      make是一个命令工具,能够解释Makefile中的指令

      要如何编译.c文件,关键就在于Makefile是怎么写的,下面我们主要介绍这两者的使用

      、单个文件的编译

      假设我们要编译这么一个test.c文件,我们希望编译生成一个名为test的可执行文件

      Linux自动化构建工具make/Makefile的使用详解

      我们在test.c所在目录下创建一个Makefile文件,这里有两种编译写法

      1、写法一:逐个生成.i、.s、.o文件,最后再生成 test执行文件

      先一步步向下分析,需要什么依赖文件,然后再一步步生成

      Linux自动化构建工具make/Makefile的使用详解

      编写好以后,我们只需要在命令行输入make,系统就会帮我们自动编译了,同时会生成每一步产生的文件按

      Linux自动化构建工具make/Makefile的使用详解

      2、 写法二:一步到位,直接通过 test.c 生成 test 执行文件(推荐)

      Makefile中要写的内容如下

      Linux自动化构建工具make/Makefile的使用详解

      第一行:确定好依赖文件和目标文件。也就是要用依赖文件来生成目标文件

      第二行:编译指令。

      $@ 指向第一行的目标文件,表示目标文件test

      $^ 指向第一行的依赖文件,表示依赖文件test.c

      -std 表示采用的c++标准

      接下来我们只需要在命令行输入make,系统就会帮我们编译了,编译成功以后,当前目录下就会多出一个test 执行文件

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      3、 Makefile自动清理

      我们每次开始编译之前,我们最好先清理一下之前生成的执行文件,手动输入 rm test 有点太麻烦了,Makefile只要写入下面的内容,就会自动帮我们清理了

      Linux自动化构建工具make/Makefile的使用详解

      如果我们还希望移除生成的.o 、.s、.i文件,那么第6行只要换成

      rm -f test test.o test.s test.i

      一般我们make的时候,系统会自动调用,当然也可以手动调用,如

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      我们会发现之前的test执行文件不见了

      二、多个文件的编译(同一目录下)

      现在我们有三个文件,分别是test.c、sub.c、sub.h,而且我们要在test.c中调用sub.h中的函数

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      Makefile中的内容如下:

      Linux自动化构建工具make/Makefile的使用详解

      test执行文件 要依赖 多个文件生成的 .o文件,现在没有 .o文件,所以需要重新生成 .o文件

      当前路径下有多个.c文件,我们逐个去写的话,就是

      test.o:test.c
          gcc -c $@ $^
      sub.o:sub.c
          gcc -c $@ $^

      但是这样写太复杂了,我们可以选择下面这种写法

      %.o: %.c
          gcc -c $<

      %.o:表示目标文件是 .o文件

      %.c:表示依赖文件是当前路径下的 .c文件,可以看作是一个集合中放着 test.c sub.c

      $< : 展开%.c ,逐个生成对应的 .o文件,比如test.c就会生成对应的test.o、sub.c就会生成对应的

      sub.o

      现在我们来运行一下

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      三、多个文件的编译(不同目录下)

      现在我们有三个文件,test.c、sub.h、sub.c,但是其中sub.h、sub.c在其目录func_dir 下

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      Makefile的内容如下:

      Linux自动化构建工具make/Makefile的使用详解

      现在我们来运行一下试试

      Linux自动化构建工具make/Makefile的使用详解

      Linux自动化构建工具make/Makefile的使用详解

      到此这篇关于Linux 自动化构建工具 make/Makefile的文章就介绍到这了,更多相关linux自动化构建工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

      --结束END--

      本文标题: Linux 自动化构建工具make/Makefile的使用详解

      本文链接: https://www.lsjlt.com/news/21589.html(转载时请注明来源链接)

      有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

      本篇文章演示代码以及资料文档资料下载

      下载Word文档到电脑,方便收藏和打印~

      下载Word文档
      猜你喜欢
      • Linux 自动化构建工具make/Makefile的使用详解
        目录一、单个文件的编译1、写法一:逐个生成.i、.s、.o文件,最后再生成 test执行文件2、 写法二:一步到位,直接通过 test.c 生成 test 执行文件(推荐)3、 Makefile自动清理二、多个文件的编译...
        99+
        2022-06-05
        linux自动化构建工具 linux make Makefile
      • Linux自动化构建工具make和Makefile详解
        目录一、make和Makefile的作用二、make和Makefile的使用清理一、make和Makefile的作用 在一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 ...
        99+
        2023-04-19
        Linux自动化构建工具 Linux make Makefile 自动化构建工具make 自动化构建工具Makefile
      • Linux下的自动化构建工具之make/makefile的用法详解
        目录一、make和makefile的区别二、makefile的原理1、make的原理详解2、临时文件的清理3、文件的三个时间三、makefile的推导规则四、实现一个进度条1、缓冲区问题2、实现倒计时程序3、进度条的实现...
        99+
        2022-10-28
      • Linux自动化构建工具make和Makefile如何使用
        这篇文章主要介绍“Linux自动化构建工具make和Makefile如何使用”,在日常操作中,相信很多人在Linux自动化构建工具make和Makefile如何使用问题上存在疑惑,小编查阅了各式资料,整理出...
        99+
        2023-05-25
        linux make makefile
      • Linux自动化构建工具make和Makefile怎么使用
        这篇文章主要讲解了“Linux自动化构建工具make和Makefile怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux自动化构建工具make和Makefile怎么使用”吧!一...
        99+
        2023-07-06
      • Linux自动化构建工具Makefile与make怎么用
        这篇文章主要介绍“Linux自动化构建工具Makefile与make怎么用”,在日常操作中,相信很多人在Linux自动化构建工具Makefile与make怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”L...
        99+
        2023-06-28
      • golang构建工具Makefile使用详解
        目录正文正文 可能是因为编译太简单了,golang 并没有一个官方的构建工具(类似于 java 的 maven 和 gradle之类的),但是除了编译,我们可能还需要下载依赖,运行测...
        99+
        2022-11-11
      • 使用Jenkins自动化构建工具进行敏捷开发
        目录一、序言二、安装与使用(一)安装1、查看初始密码2、修改默认工作空间(二)使用1、构建配置2、添加项目(三)免密登录三、触发策略(一)定时触发(二)URL 触发(三)钩子触发附录...
        99+
        2022-11-13
      • Linux下自动化工具 cron jobs 的使用方法解析
        Cron jobs的简单使用 cron jobs 可以将任何的工作设定为定期自动化执行,如工作日志、备份、密码查核、硬盘空间查核等等, 设定且利用这些自动化的工作可以大幅降低系统管理者的日常工作,这些工作通常可以设定...
        99+
        2022-06-03
        Cron jobs Linux 自动化
      • 怎么使用Jenkins自动化构建工具进行敏捷开发
        这篇“怎么使用Jenkins自动化构建工具进行敏捷开发”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Jenkins自...
        99+
        2023-06-29
      • Linux下自动化工具Parallel SSH的使用方法
        这篇文章将为大家详细讲解有关Linux下自动化工具Parallel SSH的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。parallel-ssh 是为小规模自动化而设计的异步并行的...
        99+
        2023-06-15
      • 使用docker搭建jenkins自动化工具的实现
        目录一、jenkins二、基于docker 搭建 jenkins三、jenkins 自动发布 SpringBoot 镜像一、jenkins Jenkins是一个开源软件项目,是基于J...
        99+
        2022-11-13
      • 在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
        安装 node.js 首先需要安装 node.js, 通常情况下,只需要到 Node.js 官网下载安装包安装就可以了。不过我可耻的失败了,弹出了如下错误: 于是我换成了 brew 大法: bre...
        99+
        2022-06-04
        工具 项目 OS
      • 如何使用Linux下的自动化运维工具ansible
        本篇内容介绍了“如何使用Linux下的自动化运维工具ansible”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么样的情形需要批量部署...
        99+
        2023-06-12
      • 如何使用Linux下自动化部署工具Puppet 的注册方式与常用命令
        本篇内容主要讲解“如何使用Linux下自动化部署工具Puppet 的注册方式与常用命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Linux下自动化部署工具Puppet 的注册方式与常...
        99+
        2023-06-13
      软考高级职称资格查询
      编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
      • 官方手机版

      • 微信公众号

      • 商务合作