您的位置:首页 > 教程 > 开发工具 > sublime > Linux 自动化构建工具make/Makefile的使用详解

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

2022-04-21 12:00:30 来源:易采站长站 作者:

Linux 自动化构建工具make/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的可执行文件

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

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

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

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

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

Makefile中要写的内容如下

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

第二行:编译指令。

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

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

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

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

3、 Makefile自动清理

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

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

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

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

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

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

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

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

现在我们来运行一下

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

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

Makefile的内容如下:

现在我们来运行一下试试

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

如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • sublime php语法错误提示怎么发现

    sublime php语法错误提示怎么发现

    sublime php语法错误提示的发现方法:首先打开sublime软件;然后在sublime中写入php代码;接着按下快捷键“ctrl+B”,即可在执行过程中显示错误提示。昨晚因为php的某个变量代码写错了,sublime又没有提示语法错误。弄了许久,一段段的调试,最后才知道是取到的变量是空的sublime可以提示php语法错误在sublime写完了php代码后,如果写错了不像eclipse即时
    2020-08-15
  • Sublime Text3简体中文汉化包怎么用

    Sublime Text3简体中文汉化包怎么用

    下面由sublime教程栏目给大家介绍Sublime Text3简体中文汉化包的使用方法,希望对需要的朋友有所帮助!汉化包下载地址:https://github.com/Trojain/sublime-package1、由上面的链接得到的 Default.sublime-package 文件。打开sublime text 3 编辑器,打开菜单 => preferences => Browse Pa
    2020-08-20
  • 关于 Sublime Text 中的 Git

    关于 Sublime Text 中的 Git

    下面由sublime教程栏目给大家介绍Sublime Text 中的 Git,希望对需要的朋友有所帮助!Sublime Text 中的 Git从 3.2 版本开始,Sublime Text 在编辑器内集成了 Git。功能如下:侧边栏将会使用图标来指明文件及文件夹的 Git 状态。被你的 .gitignore 文件所指定忽略的文件以及文件夹会在侧边栏褪色显示。在状态栏,你能够查看当前所在分支以及你做
    2020-08-21
  • Sublime Text3+Markdown配置步骤【图文详解】

    Sublime Text3+Markdown配置步骤【图文详解】

    下面由sublime教程栏目给大家介绍Sublime Text3+Markdown配置步骤【图文详解】,希望对需要的朋友有所帮助!Sublime是一款非常优秀的文本编辑器,可以安装大量的插件,使用Sublime + Markdown更是有一番别样体验,在此只写如何正确配置(以Sublime Text 3为例),使用技巧请参阅相关文章。1.安装Package:Markdown Preview和Ma
    2020-08-22
  • 三步搞定sublime text 3配置

    三步搞定sublime text 3配置

    下面由sublime教程栏目给大家介绍sublime text 3的下载和配置,希望对需要的朋友有所帮助!下载sublime text 3在百度中搜索sublime text 3,进入sublime text官网,官网链接是http://www.sublimetext.com/。下载界面如图所示:点击Download for Windows按钮,下载sublime text 3,需要注意的是这里下
    2020-08-24
  • 分享Sublime Text 3 、WebStorm配置护眼主题(浅绿色)

    分享Sublime Text 3 、WebStorm配置护眼主题(浅绿色)

    下面由sublime教程栏目给大家分享Sublime Text 3 、WebStorm配置护眼主题(浅绿色),希望对需要的朋友有所帮助!本文所用软件版本Sublime Text 3(Build 3143)、WebStorm 2017.2.4(Build #WS-172.4155.35),其他版本软件配置过程可能不一样,请知悉!1.Sublime Text 3护眼主题 (1)下载配置文件 链
    2020-08-26
  • Sublime Merge 是什么

    Sublime Merge 是什么

    下面由sublime教程栏目给大家介绍Sublime Merge,希望对需要的朋友有所帮助!Sublime Merge 是由知名文本编辑器 Sublime Text 开发商打造的 Git 客户端,仅适用于 64 位平台。按开发商的说法,Sublime Merge 融合了 Sublime Text 的 UI 引擎和从零开始的 Git* 实现。所以这一工具继承了 Sublime Text 优雅美观的
    2020-08-27
  • Sublime Text 快捷键列表分享

    Sublime Text 快捷键列表分享

    下面由sublime教程栏目给大家介绍Sublime Text 快捷键,希望对需要的朋友有所帮助!Sublime Text 快捷键列表 快捷键按类型分列如下:1、通用 ↑↓← → 上下左右移动光标 Alt 调出菜单 Ctrl + Shift + P 调出命令板(Command Palette) Ctrl + ` 调出控制台2
    2020-08-29