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?