c语言makefile编写实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言makefile编写实例
Makefile是用来管理程序编译的工具,可以方便地管理程序的编译过程。

使用Makefile可以大大简化程序的编译过程,提高程序的可维护性。

Makefile的语法比较简单,主要由目标、依赖和命令三部分组成。

下面我们以一个简单的C程序为例,来介绍如何使用Makefile进行编译。

假设我们有一个名为hello.c的程序,代码如下:
```c
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
```
我们需要使用gcc编译器将其编译成可执行文件。

下面是一个简单的Makefile:
```makefile
hello: hello.c
gcc -o hello hello.c
```
这个Makefile很简单,它定义了一个名为hello的目标,该目标依赖于hello.c文件,并使用gcc命令将其编译成可执行文件。

如果我们在终端中输入make命令,Makefile会自动执行编译过程:
```
$ make
gcc -o hello hello.c
```
Makefile还可以定义多个目标,每个目标可以有多个依赖和多个命令。

下面是一个稍微复杂一些的Makefile:
```makefile
CC=gcc
CFLAGS=-Wall -g
all: hello goodbye
hello: hello.o
$(CC) $(CFLAGS) -o hello hello.o
goodbye: goodbye.o
$(CC) $(CFLAGS) -o goodbye goodbye.o
hello.o: hello.c
$(CC) $(CFLAGS) -c hello.c
goodbye.o: goodbye.c
$(CC) $(CFLAGS) -c goodbye.c
clean:
rm -f *.o hello goodbye
```
这个Makefile定义了两个目标:all和clean。

其中all目标依赖于hello和goodbye两个目标,而hello和goodbye这两个目标又分别依赖于hello.c、goodbye.c和对应的目标文件hello.o、goodbye.o。

clean目标用于清除编译生成的目标文件和可执行文件。

在这个Makefile中,我们还定义了两个变量:CC和CFLAGS。

CC 变量指定了编译器的名称,CFLAGS变量指定了编译器的选项,包括开启所有警告(-Wall)和生成调试信息(-g)。

在使用Makefile编译程序时,可以使用make命令来执行编译过程。

如果我们想要生成所有目标文件和可执行文件,可以执行如下命令:
```
$ make all
gcc -Wall -g -c hello.c
gcc -Wall -g -o hello hello.o
gcc -Wall -g -c goodbye.c
gcc -Wall -g -o goodbye goodbye.o
```
如果我们只想生成hello可执行文件,可以执行如下命令:
```
$ make hello
gcc -Wall -g -c hello.c
gcc -Wall -g -o hello hello.o
```
如果我们想清除所有目标文件和可执行文件,可以执行如下命令:
```
$ make clean
rm -f *.o hello goodbye
```
通过Makefile,我们可以方便地管理程序的编译过程,提高程序的
可维护性。

Makefile的语法简单,但是可以通过定义变量、函数和条件语句等方式实现更复杂的编译过程。

掌握Makefile对于程序员来说是非常必要的技能。

相关文档
最新文档