makefile不使用编译器标志

时间:2014-04-17 15:46:00

标签: makefile

我有这个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

我该如何实现这种行为?

1 个答案:

答案 0 :(得分:1)

好吧,您的规则指定了如何从.o构建.c。但是您的文件名为.cpp,而不是.c。重写:

%.o: %.cpp $(DEPS)
        $(CC) -c -o $@ $< -Wall -lglut -lGL

但是,在编译行中添加-l等链接器标志会导致错误。