不幸的是,我不记得第一次发生这种情况是什么时候,但最近我在运行“make”来构建程序时发现了一个奇怪的错误。
我有以下生成文件:
SOURCE = Foo.cpp \
Foobar.cpp
OBJECTS = $(SOURCE:.cpp=.o)
LIBS = -lX11 -lGL -lGLU
program: $(OBJECTS)
g++ $(OBJECTS) $(LIBS) -o platform
.o: .cpp
g++ -g -c $@
烦人的是,当我运行 make 时,我得到:
$ make
g++ -c -o Foo.o Foo.cpp
g++ -c -o Foobar.o Foobar.cpp
g++ Foo.o Foobar.o -lX11 -lGL -lGLU -o program
“-g”选项被忽略。有谁知道为什么会这样?有趣的是,我尝试在终端中手动输入命令:
$ g++ -g -c Foo.cpp
$ g++ -g -c Foobar.cpp
$ make
g++ Foo.o Foobar.o -lX11 -lGL -lGLU -o program
它按预期工作,我可以正确使用 gdb 之类的程序,所以它似乎不是 C++/gcc 问题,我对 makefile 没有丰富的经验,但我读过的示例或教程似乎都没有消失选项的任何问题,似乎没有任何关于它的帖子。我只是做了一些愚蠢的事情而没有意识到吗?