编写一个由头文件greeting.h、自定义数文件greeting.c、主函数文件myapp.c构成的C 程序,并根据这三个文件的依赖关系编写Makefile 文件
时间: 2024-10-20 19:12:06 浏览: 62
ubuntu系统生成静态库.a的makefile文件
当你想要创建一个简单的C程序,通常包含三个部分:头文件(greeting.h)、自定义函数实现文件(greeting.c),以及主程序文件(myapp.c)。这个程序可能包含一个用于打招呼的函数,比如`greet_user()`。
首先,让我们定义头文件greeting.h:
```c
// greeting.h
#ifndef GREETING_H
#define GREETING_H
void greet_user(const char* name);
#endif // GREETING_H
```
在这个头文件中,我们声明了一个函数`greet_user()`,它接受一个字符串作为参数。
接下来,我们在greeting.c中实现这个函数:
```c
// greeting.c
#include "greeting.h"
void greet_user(const char* name) {
printf("Hello, %s!\n", name);
}
```
然后,在myapp.c中,我们使用这个函数:
```c
// myapp.c
#include <stdio.h>
#include "greeting.h"
int main() {
greet_user("Alice"); // 这里可以替换为你想打招呼的人的名字
return 0;
}
```
最后,我们需要编写Makefile来构建整个程序。Makefile是一个简单的文本文件,告诉编译器如何根据源代码文件生成可执行文件。一个基本的Makefile可能是这样的:
```makefile
# Makefile
CC = gcc
CFLAGS = -Wall -std=c99
EXECUTABLE = myapp
all: $(EXECUTABLE)
$(EXECUTABLE): greeting.o myapp.c
$(CC) $(CFLAGS) -o $@ greeting.o myapp.c
greeting.o: greeting.c greeting.h
$(CC) $(CFLAGS) -c greeting.c
clean:
rm -f *.o $(EXECUTABLE)
```
这个Makefile定义了`all`规则来编译并链接所有的源文件(greeting.c和myapp.c),并有一个`clean`规则来删除临时文件。执行命令`make`将自动完成这些任务。
阅读全文