我有这个makefile:
CC=g++
DEPS = object.hpp utils.hpp
OBJ = object.o main.o
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< -Wall -lglut -lGL
main: $(OBJ)
$(CC) -o $@ $^ -Wall -lglut -lGL
然后,当我make
时,会发生这种情况:
$ make
g++ -c -o object.o object.cpp
我想要的时候:
$ make
g++ -c -o object.o object.cpp -Wall -lglut -lGL
我该如何实现这种行为?
答案 0 :(得分:1)
好吧,您的规则指定了如何从.o
构建.c
。但是您的文件名为.cpp
,而不是.c
。重写:
%.o: %.cpp $(DEPS)
$(CC) -c -o $@ $< -Wall -lglut -lGL
但是,在编译行中添加-l
等链接器标志会导致错误。