编写可以编译和运行0521.cpp, 0523.cpp 和0525. cpp这3个cpp文件的makefile
时间: 2024-02-05 11:12:26 浏览: 88
以下是可以编译和运行 `0521.cpp`, `0523.cpp` 和 `0525.cpp` 这三个cpp文件的makefile示例:
```makefile
CXX = g++
CXXFLAGS = -std=c++11 -Wall
TARGETS = 0521 0523 0525
all: $(TARGETS)
0521: 0521.cpp
$(CXX) $(CXXFLAGS) -o $@ $<
0523: 0523.cpp
$(CXX) $(CXXFLAGS) -o $@ $<
0525: 0525.cpp
$(CXX) $(CXXFLAGS) -o $@ $<
clean:
rm -f $(TARGETS)
```
在终端中,进入包含上述makefile的目录,并运行以下命令:
```
make
```
将会编译并生成可执行文件 `0521`, `0523` 和 `0525`。
如果您想删除这些可执行文件,则可以使用以下命令:
```
make clean
```
相关问题
makefile如何同时能够编译.c和.cpp文件
可以使用以下的makefile代码来同时编译.c和.cpp文件:
```
CC=g++
CFLAGS=-c -Wall
LFLAGS=-Wall
SOURCES=main.c mycppfile.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=myprogram
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
.c.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm -rf *o $(EXECUTABLE)
```
上面的makefile中,SOURCES变量包含了所有需要编译的.c和.cpp文件。OBJECTS变量将所有cpp文件的后缀替换为.o后得到的文件名称。all规则会调用$(EXECUTABLE)规则,$(EXECUTABLE)规则会依赖$(OBJECTS)规则,$(OBJECTS)规则会编译所有的.c和.cpp文件。最后,makefile还提供了一个clean规则,可以用来清除所有的.o文件和可执行文件。
linux下,写一个makefile编译一个目录下的所有.cpp文件
在Linux环境下,如果你想要使用Makefile来编译一个目录下的所有`.cpp`文件,你可以创建一个基本的Makefile,它会使用GCC或其他C++编译器如g++来完成这个任务。这里是一个简单的示例:
```makefile
# Makefile for a directory containing .cpp files
CC = g++
SOURCES = $(wildcard *.cpp) # 获取当前目录下的所有.cpp文件
OBJECTS = $(SOURCES:.cpp=.o) # 将源文件转换为.obj文件
default: all
all: $(OBJECTS)
$(CC) -o your_executable_name $(OBJECTS)
%.o: %.cpp
$(CC) -c $< -o $@ # 编译单个源文件
clean:
rm -f *.o your_executable_name
.PHONY: clean default all
```
在这个Makefile里:
- `CC` 变量设置为 C++ 编译器。
- `SOURCES` 使用通配符 `*` 和 `wildcard` 函数获取当前目录下的所有`.cpp`文件。
- `OBJECTS` 是由`.cpp`到`.o`转换得到的目标文件列表。
- `all` 目标将所有的源文件编译成可执行文件。
- `%.o` 规则定义了如何从`.cpp`文件生成`.o`文件。
- `clean` 目标用于清除编译产生的临时文件。
运行 `make` 命令即可按照Makefile的规则编译所有`.cpp`文件并生成相应的二进制文件。如果你想编译或清理,只需输入 `make <target>` (比如 `make all` 或 `make clean`)。
阅读全文