1
他のプロジェクトが私たちのプロジェクトで配布している共有ライブラリとのリンクを容易にしようとしています。私がEXPORT機構を利用しようとすると、CMakeは、エクスポート・セットに共有ライブラリを構築するために使用された静的ライブラリを含めていないと言っています。他のプロジェクトは共有ライブラリとリンクするだけでよく、静的ライブラリを本当にインストールする必要はないので、これは私には不要です。これはthis bugと非常によく似ているようですが、私はこのすべての仕組みを誤解しているかもしれません。なぜCMake EXPORTは共有ライブラリの構築に使用される静的ライブラリを必要としますか?
CMake Error: install(EXPORT "myExport" ...) includes target "mySharedLib"
which requires target "myStaticLib" that is not in the export set.
ありがとう、それはエラーを解決します。静的ライブラリを共有ライブラリの依存性とみなしたい理由を理解できたら助かりますか?これは奇妙なデフォルト動作のようです。 – rpmcnally
'target_link_libraries'はリンケージの依存関係だけでなく、インクルードのための依存関係も管理します。静的ライブラリをリンクすることは、共有ライブラリに静的インタフェースのヘッダを含まないことを意味します。 cmakeの開発者は、依存性を制御するための明示的な署名を提供しながら、この時点で不自然であることを選択しました – wasthishelpful