我开始将代码形式从C更改为C ++。我的文件现在分别命名为.cpp和.hpp。
突然,我的Makefile不再起作用。现在的输出是:
make:***'man.o'不需要制定目标'main.cpp'的规则。停止。
也许有人知道我的makefile有什么问题:
#######################################################################################################################################
VERSION = 0.01
DEBUG = -O3
CC = gcc
# CC = g++
INCLUDE = -I/usr/local/include
CFLAGS = $(DEBUG) -g -DVERSION=\"$(VERSION)\" -pthread $(INCLUDE) -fpermissive
LDFLAGS = -L/usr/local/lib -D_REENTRANT -lstdc++
LDLIBS = -lm -lrt -lpthread -lbcm2835 -lpigpio -lpigpiod_if2 -lmariadbclient
#######################################################################################################################################
POOLDATA_INC= pooldata.hpp
SRC= main.cpp cthread.cpp csql.cpp ctemp.cpp ctimer.cpp
OBJ= $(SRC:.cpp=.o)
pool: $(OBJ) pooldata.hpp
@echo [link]
@$(CC) -o $@ $(OBJ) $(LDFLAGS) $(LDLIBS)
main.o: main.cpp std.hpp $(POOLDATA_INC)
cthread.o: cthread.cpp std.hpp $(POOLDATA_INC) cthread.hpp
csql.o: csql.cpp std.hpp $(POOLDATA_INC) cthread.hpp csql.hpp
ctemp.o: ctemp.cpp std.hpp $(POOLDATA_INC) cthread.hpp ctemp.hpp
ctimer.o: ctimer.cpp std.hpp $(POOLDATA_INC) cthread.hpp ctimer.hpp
.cpp.o:
@echo [CC] $<
@$(CC) -c $(CFLAGS) $< -o $@
clean:
@echo "[Clean]"
@rm -f *.o
@rm pool
.PHONY : all
all : clean pool
#######################################################################################################################################
我发现了一些错字。Makefile现在可以完美运行了。谢谢大家。