Переопределить макрос из командной строки

Я хотел бы переопределить макрос из командной строки. Где-то в моем источнике есть такое определение:

#define MY_FOO 1

Я хотел бы установить значение этого макроса при компиляции моей программы:

g++ -DMY_FOO=2 ...

Но затем макрос переопределяется исходным кодом в его старое значение 1. Проблема в том, что я не являюсь владельцем той части источника, которая в первую очередь определяет макрос. Если бы это был мой собственный код, я мог бы просто написать

#ifndef MY_FOO
#define MY_FOO 1
#endif

И моя проблема исчезнет. Так есть ли способ указать макрос в командной строке, используя g ++, чтобы исходный код не мог переопределить его?

Ответы на вопрос(3)

Ваш ответ на вопрос