这是我的makefile:
all: prog
output: run.o ruin.o interm.o
g++ run.o ruin.o interm.o -o output
run.o: run.cpp
g++ -c run.cpp
ruin.o: ruin.hpp
g++ -c ruin.hpp
interm.o: interm.cpp
g++ -c interm.cpp
OBJECTS = run.o ruin.o interm.o
INC = -I include
LIBS = -L lib -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio
CC = g++
prog: $(OBJECTS)
$(CC) $(OBJECTS) $(INC) $(LIBS) -o prog
clean:
rm *.o
这是我编译时遇到的错误:
make: *** No rule to make target `ruin.o', needed by `prog'. Stop.
插入文本,因为“帖子主要是代码 插入文本,因为“帖子主要是代码 插入文本,因为“帖子主要是代码 插入文本,因为“帖子主要是代码 插入文本,因为“帖子主要是代码
正如 @Retired Ninja 在评论中提到的,您需要将该文件包含在一个或多个 cpp 文件中,例如
Makefile
可以这样更新
CC = g++
CFLAGS = -I include
LIBS = -L lib -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio
OBJECTS = run.o ruin.o interm.o
all: prog
run.o: run.cpp
$(CC) $(CFLAGS) -c run.cpp
ruin.o: ruin.cpp
$(CC) $(CFLAGS) -c ruin.cpp
interm.o: interm.cpp
$(CC) $(CFLAGS) -c interm.cpp
prog: $(OBJECTS)
$(CC) $(OBJECTS) $(LIBS) -o prog
clean:
rm -f *.o prog