Определения влияют во время компиляции, поэтому -DSomething сохраняется для кода библиотеки и -DOther для кода программы. Будьте внимательны, если заголовок Lib, например Lib.h, включен в A.cpp, -DOther также используется для кода заголовка, поскольку он находится в том же модуле компиляции, что и A.cpp.