概述
这里提到的Make是GNU Make。
在Mac OS X上安装命令行工具时,或者在Linux上运行make命令时,GNU Make应该被调用。
编译hello.c-编译一个源文件
例如,您可以考虑创建并运行以下名为hello.c的C语言源文件。
#include <stdio.h>
int main() {
puts("hello, world!");
return 0;
}
通常,您将使用以下命令编译并创建可执行文件hello。
$ cc -o hello hello.c
$ ./hello
hello, world!
但是,(GCC等一起GNU Make被安装的前提)hello.c文件的制作以外的其他准备,而是以下的命令编译可以。
$ rm -f hello
$ make hello
cc hello.c -o hello
$ ./hello
hello, world!
hello部分根据原始.c文件的名称进行描述。
Make反映了多年来在C语言编译中使用的历史,并支持各种模式的编译。
编译扩展名.c的文件,除了扩展名之外,包含创建同名文件的规则,只需make hello就可以编译,这也是它的表现。
创建Makefile
省略make hello的hello。
输入make hello很麻烦,如果你想用make编译,请在与hello.c相同的目录中创建Make配置文件Makefile。
CC := gcc
CFLAGS := -g -Wall -Wextra
hello:
clean:
$(RM) hello
此时,运行make clean和make如下所示。
$ make clean
rm -f hello
$ make
gcc -g -Wall -Wextra hello.c -o hello
小提示
利用Makefile进行make时,“Makefile:8: *** missing separator. Stop.”出现时的应对方法
在这种情况下,原因是在最后一行的开头使用空格。
将空格更改为TAB即可解决。