Интересно, куда поместить опции оптимизации и отладки в Makefile: этап компоновки или этап компиляции? Я читаю Makefile:
ifeq ($(STATIC),yes)
LDFLAGS=-static -lm -ljpeg -lpng -lz
else
LDFLAGS=-lm -ljpeg -lpng
endif
ifeq ($(DEBUG),yes)
OPTIMIZE_FLAG = -ggdb3 -DDEBUG
else
OPTIMIZE_FLAG = -ggdb3 -O3
endif
ifeq ($(PROFILE),yes)
PROFILE_FLAG = -pg
endif
CXXFLAGS = -Wall $(OPTIMIZE_FLAG) $(PROFILE_FLAG) $(CXXGLPK)
test: test.o rgb_image.o
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
Makefile.depend: *.h *.cc Makefile
$(CC) -M *.cc > Makefile.depend
clean:
\rm -f absurdity *.o Makefile.depend TAGS
-include Makefile.depend
Что меня удивляет, так это то, что CXXFLAGS используется в ссылках. Я знаю, что он также используется в неявном правиле для компиляции для генерации файлов .o, но нужно ли использовать его снова для компоновки? В частности, куда я должен поместить оптимизацию и отладку: этап компоновки или этап компиляции?