Linux下Makefile文件的的基础知识与语法详解( 二 )


2、如果工程中只有个别C 文件被修改了,那么只编译这些被修改的C 文件即可 。
3、如果工程的头文件被修改了,那么我们需要编译所有引用这个头文件的 C 文件,并且链接成可执行文件 。
很明显,能够完成这个功能的就是 Makefile 了,在工程目录下创建名为“Makefile”的文件,文件名一定要叫做“Makefile”!!!区分大小写的哦!如图所示:

Linux下Makefile文件的的基础知识与语法详解

文章插图
Makefile 文件
上述代码中所有行首需要空出来的地方一定要使用“TAB”键!不要使用空格键!这是Makefile 的语法要求,编写好得 Makefile 如图所示:
Linux下Makefile文件的的基础知识与语法详解

文章插图
Makefile源文件
Makefile 编写好以后我们就可以使用 Make 命令来编译我们的工程了,直接在命令行中输入“Make”即可,Make 命令会在当前目录下查找是否存在“Makefile”这个文件,如果存在的话就会按照 Makefile 里面定义的编译方式进行编译,如图所示:
Linux下Makefile文件的的基础知识与语法详解

文章插图
make命令编译工程
在图中,使用命令“Make”编译完成以后就会在当前工程目录下生成各种.o 和可执行文件,说明我们编译成功了 。使用 Make 命令编译工程的时候可能会提示如图所示错误:
Linux下Makefile文件的的基础知识与语法详解

文章插图
make命令编译失败
图中的错误来源一般有两点:
1、Makefile 中命令缩进没有使用 TAB 键!
2、VI/VIM 编辑器使用空格代替了TAB 键,修改文件/etc/vim/vimrc,在文件最后面加上如下所示代码:
set noexpandtab 我们修改一下 input.c 文件源码,随便加几行空行就行了,保证 input.c 被修改过即可,修改完成以后再执行一下“Make”命令重新编译一下工程,结果如图所示:
Linux下Makefile文件的的基础知识与语法详解

文章插图
重新编译工程
从图中可以看出因为我们修改了 input.c 这个文件,所以 input.c 和最后的可执行文件 main 重新编译了,其它没有修改过的文件就没有编译 。而且我们只需要输入“make”这个命令即可,非常方便 。




推荐阅读