我怎樣才能爲只有DLL的版本指定一些唯一的標誌。默認情況下,libtool添加-DDLL_EXPORT
,對於遵循GNU慣例的大多數項目來說都不錯,但是如果我工作,例如使用Boost,我可能需要爲我的庫標誌指定:-DDLL_EXPORT -DBOOST_ALL_DYN_LINK
僅用於DLL的構建,有時候我還是希望有條件構建,所以我需要一些特定的DLL/SO構建定義。是否可以爲DLL/SO構建指定特定的標誌/定義?
不幸的是,我不能找到一種方式如何使用libtool來做到這一點,我應該使用哪些標誌?
措施:甚至不要試圖建議遷移到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 2010-01-24 07:36:43
@Artyom也許有,但我不知道它。我只在Unix上使用Autotools,並且避免在Windows上使用它來構建DLL。 – mloskot 2010-01-24 15:03:58