Возможно, вам следует подумать о том, какое влияние _MYDEFINE_
оказывает на вашу библиотеку.
Если вы хотите, чтобы его эффекты были только для разработки (например, NDEBUG), использование опции компилятора -D
или /D
может быть приемлемым.
Если это имеет эффект, который будет влиять на то, что происходит, когда ваши пользователи используют библиотеку, вам может потребоваться сделать что-то более сложное. В последнем случае вы будете создавать две версии вашей библиотеки, и вы можете назвать их так: как в libX-ABC2.a и libX-ABC4.a. Вам также понадобятся две версии ваших включаемых файлов, и вам может потребоваться сгенерировать заголовки конфигурации с _MYDEFINE_
, определенным соответствующим образом в каждой. Если ваша библиотека установлена, вам могут потребоваться каталоги включенных версий для файлов заголовков.
Если, например, _MY_DEFINE_ влияет на расположение объявленных структур или размер объявленного массива в других заголовках, если пользователи включают заголовок для #define ABC 4
в библиотеку, которая предполагает #define ABC 2
, вы будете вносить некоторые неприятные ошибки для ваших пользователей, чтобы выследить.
Я видел это раньше. Забота об этом трудна и утомительна, но не выполнение этого может создать серьезные проблемы с различными версиями вашей библиотеки.