我的Makefile的一部分看起来像这样...
在编译时,我收到以下警告:
ifdef vis
flg += -framework GLUT -framework OpenGL -Dvis
obj += camfun.o glfuns.o
endif
...
all: driver.cpp header.h $(obj)
$(cc) -o $(exe) driver.cpp $(obj) $(flg) $(lib)
funs.o: header.h funs.cpp
$(cc) -c funs.cpp $(flg)
glfuns.o: header.h glfuns.cpp
$(cc) -c glfuns.cpp $(flg)
camfun.o: header.h camfun.cpp
$(cc) -c camfun.cpp $(flg)
在编译时,我收到以下警告:
g++ -c camfun.cpp -Wno-write-strings -O2 -framework GLUT -framework OpenGL -Dvis
i686-apple-darwin10-g++-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: GLUT: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -framework: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: OpenGL: linker input file unused because linking not done
现在,我知道我收到了那个警告是因为我肯定应该收到(-c选项明确告诉它不要链接)!但我想关闭它,我知道我链接太多,我可以接受。如何关闭该警告?
$(ldflg)
和$(ccflg)
时,在g++ -c glfuns.cpp -Wno-write-strings -O2 -Dvis
之后,我会得到一堆警告,说某些东西(例如GLUT_DOUBLE)在此范围内未声明。然而,当我使用ldflg和ccflg编译该行时,它可以编译,但我仍然会收到这些警告。编辑:我把ccflg和ldflg搞混了!谢谢! - drjrm3