【发布时间】:2010-01-01 14:08:15
【问题描述】:
如何为仅 DLL 构建指定一些唯一标志。默认情况下,libtool 添加了-DDLL_EXPORT,这对于大多数遵循 GNU 约定的项目来说都很好,但是如果我使用 Boost,例如,我可能需要为我的库标志指定:-DDLL_EXPORT -DBOOST_ALL_DYN_LINK for DLL only builds,有时我也想要条件构建,所以我需要一些特定的 DLL/SO 构建定义。
很遗憾,我找不到如何使用 libtool 执行此操作的方法,我应该使用哪些标志?
P.S.:甚至不要试图建议迁移到 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
丑陋但应该可以。
【问题讨论】:
标签: c++ dll build-automation automake libtool