Заголовочный файл, содержащий директивы препроцессора #define
, может влиять только на компиляцию кода.Поскольку статическая библиотека уже скомпилирована, директивы препроцессора на нее не влияют.
Вы должны использовать конструкции времени выполнения, например, if
, чтобы изменить поведение статической библиотеки.
Если ваш кодбыло:
// configuration.h
#define USE_FLUX_CONDENSER 1
// static library
void advanceTime() {
#if USE_FLUX_CONDENSER
chargeFluxCondenser()
#endif
}
Это станет:
// configuration.h
extern BOOL g_useFluxCondenser;
// static library
BOOL g_useFluxCondenser;
void advanceTime() {
if (g_useFluxCondenser) {
chargeFluxCondenser()
}
}
И где-то в вашем коде инициализации вы установите g_useFluxCondenser = YES
.