【Linux笔记】make工程管理工具(一)

1、如何编译具有多个源码(.c文件)的工程

上一篇笔记写了如何使用 gcc 的编译命令编译:【Linux笔记】Linux下编译C程序。当源文件较少时,使用gcc编译命令编译就比较方便,在gcc编译命令中依次列出各个源文件就好,比如:

gcc src1.c src2.c src3.c src4.c -o src

把src1.c、src2.c、src3.c、src4.c编译生成可执行文件 src 。在Linux环境下,一般不具有集成开发环境(IDE),一般都是使用命令来编译。当源文件较少时,可以使用上面的方式进行编译。但是,如果我们的项目代码工程源文件很多,几十个,上百个,甚至上千上万个呢,那么该怎么进行编译呢?这时候,就可以使用工程管理文件——Makefile(makefile)文件对你的工程进行管理,然后使用 make 工具解释Makefile(makefile)文件中的指令(编译指令)进行我们的项目编译。

2、怎么使用make工具来编译我们的C工程呢

平常,在技术的学习时,我习惯于先把要学的技术、原理用起来,再进一步去了解这个技术、原理,有进一步的学习之后,然后再进一步的去进行应用,即用->学->用。而不是等学会了各种原理才去应用,即学->用。

所以,我们先看怎么用make工具的问题。当然,首先得想办法编写Makefile文件。在这之前,我们可以使用 make -v 命令查看我们当前系统是否具有make工具(本文使用的Linux发行版为红帽6):

可见,我们系统的make工具版本是3.81。我们还是以上一篇笔记的例子,这次我们使用make编译我们的hello文件(输出Hello World是我们千年不变的目标

)如下是我们编写的Makefile文件中的内容:

有了Makefile文件,我们就可以编译我们的hello.c文件了,如:

要注意的是我们Makefile文件中的命令前面空白是一个【Tab】键的长度,不能使用空格键代替,否则是会出错的,如:

再或者,想看到我们平时所说的“编译”各个过程,我们可以把Makefile文件修改成:

然后使用make工具进行解释:

(0)

相关推荐

  • 乐创DIY C语言讲义​——2.1节

    2.1 一段对话引发的思考 之前有个做C语言开发的面试,面试官是我和一个同事,被面试者是一个刚刚毕业的应届生,对话大致意思如下: 面试官:你们学校里面学C语言的时候,用的什么编译器? 面试者:我们都是 ...

  • linux源码的安装步骤

    inux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码. 而一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上运行 ...

  • 【Linux + Makefile】十分钟教你学会Makefile的FORCE

    https://blog.csdn.net/szullc/article/details/85036984 相信大家在使用Linux环境编程的时候,一定接触过Makefile这个玩意.Makefile ...

  • Linux编译安装相关命令

    Linux编译安装相关命令

  • 【Linux笔记】make工程管理工具(二)

    make和Makefile(或者makefile)文件提供了一种简单有效的工程管理方式.Makefile文件是一个决定着如何编译工程的文本,有一定的书写规则.make是一个GNU命令工具,用来解释Ma ...

  • linux进程管理:进程,程序,线程 & 9个进程管理工具 & 作业控制

    程序 程序:一组指令以及参数集合,按照相应的逻辑控制计算机完成特性任务 (一个程序可以产生多个进程) linux程序:系统,用户,固件 (包含指令,参数) 程序 ------>系统调用----- ...

  • 学用系列|限免!X-Note更好用的本地笔记知识管理工具来了

    作为重度笔记用户,胖胖老师很喜欢体验各种笔记工具,不论是wolai.bookxnote.MarginNote.石墨.金山文档.印象笔记.Swrite等云笔记,还是传统的OneNote.office等, ...

  • 如何把笔记类APP用好,变成系统性的知识管理工具?

    版权声明 注:收到的征文邮件比较多,正在陆续的回复,没收到的别急,这一二天会都处理完的. 正文 这是我2年半前在知乎写的答案,这段时间正好有读者询问类似的问题,就重新分享一下.当时针对Evernote ...

  • 【Linux笔记】文件及目录管理命令

    往期资料  == 菜单栏下有更多资料 资源分享 | 嵌入式相关 资源分享 | 编程语言类 资源分享 | Linux相关资料 资源分享 | 数据结构与算法 前言 之前分享的Cygwin是一个在windo ...

  • [Linux] ubuntu下yarn依赖管理工具的安装和使用

    Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码, 或者分享自己的代码.Yarn 做这些快捷.安全.可靠,所以你不用担心什么. 通过Yarn你可以使用其他开发者针对不同问题 ...

  • 求荐工程建筑行业好用的水印相机和管理工具

    在工程建筑行业能有效提高团队工作效率的管理神器: 第一个推荐广联达,广联达是个集Bim.大数据.智能化监管与一体的软件.记录用工信息,生成台账和工单,项目人员数据信息实时传递,人员整理台账的效率由原本 ...

  • 笔记大神推荐的个人知识文档管理工具mybase

    铛铛铛,今天我要给大家推荐一款个人知识笔记管理神器,不出你们所料,它就是mybase. 那mybase究竟能干啥呢?借用mybase中文官网的一句话来说,mybase软件可以将电脑上的文档.知识.笔记 ...

  • 经典管理工具-PDCA使用指南详解(史上最强)

    PDCA循环,一个老话题了,大家都知道要这么做,但在平时的生活和工作当中,你是否真的都这样做呢? 当你发现你面对的困难重重,寸步难行时,是否反思过是因为自己一开始的方法就不正确? 本文包涵了PDCA循 ...