DLL のみのビルドに固有のフラグを指定するにはどうすればよいですか。デフォルトでは libtool が追加されます-DDLL_EXPORT
が、これは GNU 規則に従うほとんどのプロジェクトでは問題ありませんが、たとえば Boost を使用する場合は、ライブラリ フラグを指定する必要がある場合があります-DDLL_EXPORT -DBOOST_ALL_DYN_LINK
。 DLL/SO ビルドの特定の定義。
残念ながら、libtool でこれを行う方法が見つかりません。どのフラグを使用すればよいですか?
PS: 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
醜いが動作するはずです。