Substituir macro da linha de comando

Gostaria de substituir uma macro da linha de comando. Em algum lugar da minha fonte, há uma definição como esta:

#define MY_FOO 1

O que eu gostaria é definir o valor dessa macro quando compilar meu programa:

g++ -DMY_FOO=2 ...

Mas, então, a macro é redefinida pelo código-fonte para seu antigo valor 1. O problema é que eu não possuo a parte da fonte que define a macro em primeiro lugar. Se fosse meu próprio código, eu poderia simplesmente escrever

#ifndef MY_FOO
#define MY_FOO 1
#endif

E meu problema teria sumido. Portanto, existe uma maneira de especificar uma macro na linha de comando usando g ++ para que o código-fonte não possa redefini-la?

questionAnswers(3)

yourAnswerToTheQuestion