如何为仅 DLL 构建指定一些唯一标志。默认情况下,libtool 添加-DDLL_EXPORT
这对于大多数遵循 GNU 约定的项目来说都很好,但是如果我使用 Boost,例如,我可能需要为我的库标志指定:-DDLL_EXPORT -DBOOST_ALL_DYN_LINK
对于 DLL 仅构建,有时我也需要条件构建,所以我需要一些DLL/SO 构建的特定定义。
不幸的是,我找不到如何使用 libtool 执行此操作的方法,我应该使用哪些标志?
PS:甚至不要试图建议转移到 CMake。
例子:
我使用链接到 bar 的库 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
丑陋但应该工作。