每次更改代码后,由于未保存.o文件,因此必须编译整个程序,makefile怎么了?
CXX=g++
CXXFLAGS=-W -Wall -ansi -pedantic
LDFLAGS=
EXEC=test
SRC= $(wildcard *.cpp)
OBJ= $(SRC:.c=.o)
all: $(EXEC)
@echo "$(CYAN)\n\tProgram successfully compiled!\n\a$(BLACK)"
$(EXEC): $(OBJ)
$(CXX) -o $@ $^ $(LDFLAGS)
%.o: %.cpp
$(CXX) -o $@ -c $< $(CXXFLAGS)
答案 0 :(得分:0)
感谢约翰弄清楚!
问题是这一行:
OBJ = $(SRC:.c = .o)
必须是这样的:
OBJ = $(SRC:.cpp = .o)
实际上,我从makefile复制了结构以编译C程序,因此我必须修改源文件的扩展名!