编写make文件实现编译c或c++代码
时间: 2024-03-23 21:40:35 浏览: 8
好的,以下是一个简单的 makefile 文件,用于编译 C 或 C++ 代码:
```
CC = gcc
CXX = g++
CFLAGS = -Wall -Wextra -pedantic
CXXFLAGS = $(CFLAGS)
SRCS = main.c
OBJS = $(SRCS:.c=.o)
EXEC = program
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(OBJS) -o $(EXEC)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(EXEC)
```
在这个 makefile 文件中,有以下几个部分:
- `CC` 和 `CXX` 变量分别指定了编译 C 和 C++ 代码所使用的编译器。
- `CFLAGS` 和 `CXXFLAGS` 变量分别指定了编译 C 和 C++ 代码时使用的编译选项。
- `SRCS` 变量指定了需要编译的源文件。
- `OBJS` 变量通过将 `.c` 文件的后缀替换为 `.o` 来指定编译后生成的目标文件。
- `EXEC` 变量指定了最终生成的可执行文件名。
- `all` 规则指定了默认需要生成的目标,即 `$(EXEC)`。
- `$(EXEC)` 规则指定了生成可执行文件的规则,依赖于 `$(OBJS)`,并且使用 `$(CC)` 编译器生成可执行文件。
- `%.o` 规则指定了生成目标文件的规则,依赖于对应的 `.c` 文件,使用 `$(CC)` 编译器生成目标文件。
- `clean` 规则指定了清理编译生成的文件的规则,即删除 `$(OBJS)` 和 `$(EXEC)`。
在命令行中,使用 `make` 命令可以编译生成可执行文件。如果需要清理编译生成的文件,可以使用 `make clean` 命令。