写一个包含.c和.cpp的makefile
时间: 2024-02-11 19:07:16 浏览: 99
一个c++的makefile例子
4星 · 用户满意度95%
以下是一个包含.c和.cpp的makefile示例:
```
CC = gcc
CXX = g++
CFLAGS = -Wall -Werror
CXXFLAGS = -std=c++11 -Wall -Werror
SRCS = main.c myclass.cpp
OBJS = $(SRCS:.c=.o) $(SRCS:.cpp=.o)
TARGET = myprogram
all: $(TARGET)
$(TARGET): $(OBJS)
$(CXX) $(CFLAGS) $(OBJS) -o $(TARGET)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
clean:
rm -f $(OBJS) $(TARGET)
```
在这个示例中,我们定义了两个编译器变量 CC 和 CXX,分别用于编译C和C++代码。我们还定义了CFLAGS和CXXFLAGS变量分别用于传递编译器选项。SRCS变量包含所有的源文件,OBJS变量包含所有的目标文件,TARGET变量是最终生成的可执行文件名。
makefile中的all规则会生成目标文件$(TARGET),其依赖于所有的目标文件$(OBJS)。我们使用通配符来生成所有的目标文件,其中%.o表示任意的.o目标文件,%.c表示与之对应的.c源文件,%.cpp表示与之对应的.cpp源文件。我们使用CFLAGS和CXXFLAGS变量分别传递编译器选项,然后分别使用CC和CXX变量来编译C和C++代码。
最后,我们定义一个clean规则,用于清除所有的目标文件和可执行文件。
阅读全文