Как я могу указать некоторые уникальные флаги для сборки только DLL. По умолчанию libtool добавляет -DDLL_EXPORT
, что отлично подходит для большинства проектов, которые следуют соглашениям GNU, но если я работаю, например, с Boost, мне может потребоваться указать для моих флагов библиотеки: -DDLL_EXPORT -DBOOST_ALL_DYN_LINK
для DLL только строит, также иногда мне нужны условные сборки, поэтому я нужны некоторые конкретные определения для сборки DLL/SO.Можно ли указать конкретные флаги/define для сборки DLL/SO?
К сожалению, я не могу найти способ, как это сделать с помощью libtool, какие флаги использовать?
P.S .: Даже не пытайтесь предложить перейти на CMake.
Пример:
Я использую библиотеку Foo, ссылки на бар и требует -DBAR_EXPORTS, чтобы получить символы для единственной динамической библиотеки.
Есть ли что-то вроде
libfoo_la_dynamic_CXXFLAGS = -DBAR_EXPORTS
Кто-нибудь?
Альтернативное решение: (довольно уродливый)
Создайте файл `defines.h
#if defined(PIC) || defined(DLL_EXPORT)
#define BAR_EXPORTS
#endif
И потом:
libfoo_la_CXXFLAGS += -include defines.h
Гадкий но должно работать.
Нет ли другого пути? – Artyom
@Artyom Возможно, есть, но я не знаю об этом. Я использую Autotools только в Unix, и я не использую его для Windows для создания DLL. – mloskot