В моем проекте на C ++ есть соглашение, согласно которому всякий раз, когда определяется макрос DEBUG
, отладочные операторы printf-esque компилируются в исполняемый файл.
Чтобы указать, хочу ли я, чтобы они были скомпилированы в исполняемый файл, я обычно передаю имя макроса в gcc с опцией -D
macro . Итак, в Makefile
у меня (в данный момент) есть:
CXXFLAGS += -g -I ../ -Wall -Werror -DDEBUG
Однако это не очень гибко; если бы я не хотел отладочных операторов в моей последней программе, мне пришлось бы изменить Makefile, чтобы удалить -DDEBUG.
Есть ли способ изменить Makefile
так, чтобы я мог условно выбрать, компилировать ли с -D в CXXFLAGS во время компиляции, передав, скажем, другое имя цели или параметр командной строки? Не уверен, как мне это сделать.