查看原文
其他

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

正念君 嵌入式大杂烩 2021-01-31

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!



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工具进行解释:



其中,关于关于源文件至生成可执行文件经过哪几个过程,可查看往期笔记:

【本质】你知道C语言编译的过程吗?


以上就是本篇笔记的分享,主要介绍如何使用make工具来编译我们的c工程如有错误,欢迎指出!关于make的内容很多,在之后的笔记中再具体地进行介绍!欢迎大家持续关注!如果你觉得对你有用的话,麻烦帮忙点个赞。如果你觉得对你的同学与朋友也有用的话,欢迎转发。


往期笔记:

【Linux笔记】系统目录结构

【Linux笔记】Vi/Vim编辑器

省电子设计竞赛一等奖作品分享(三)

省电子设计竞赛一等奖作品分享(二)

省电子设计竞赛一等奖作品分享(一)

【数据结构笔记】单链表

【数据结构笔记】头插法与尾插法创建单链表



点击左下角的【阅读全文】,获取本公众号往期所有笔记推送

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存