我从OpenGL的教程中得到了一个奇怪的makefile:
LDLIBS=-lglut -lGLEW -lGL -lm
all: cube
clean:
rm -f *.o cube
cube: shader_utils.o
.PHONY: all clean
源代码包含3个文件:cube.cpp,shader_utils.h和shader_utils.cpp。我通过做">来编译项目。制作立方体"但我不了解立方体目标,为什么要调用g ++。我没有指定使用g ++既不使用标志LDLIBS。
答案 0 :(得分:2)
您观察到的是由GNU Make Implicit Rules引起的。您甚至可以执行以下操作(根本没有Makefile
):
make -f /dev/null shader_utils.o
答案 1 :(得分:0)
这些只是gmake中的默认设置(从.cpp或.c生成.o的默认规则)。它很少适用于现实生活 - 很可能,你想为g ++提供一些论据。