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