C++ で大きな静的ライブラリを作成しています。そのライブラリでは、多くの静的ライブラリと動的ライブラリのシンボルを使用しています。私がそれを「作成」するとき、それは静的であるため、ライブラリに対してリンクする必要はありません。これが私の問題です。私の静的ライブラリは非常に一般的です。これは、同じインターフェースに対していくつかの実装を提供します (ドライバのような実装を見ることができます。libA は独自の実装を提供し、libB はそのような実装を提供します)。一部の実装はプラットフォームに依存するため、これらの実装は一緒に使用することを意図していません。
ライブラリにリンクすると問題が発生します。クライアントのコードがライブラリのシンボルに依存していない場合でも、クライアントは、ライブラリがシンボルを使用したすべてのライブラリに対してリンクする必要があります。たとえば、クライアントのコードがlibAのみに依存している場合でも、静的ライブラリには libB からのシンボルがいくつかあるため、クライアントはlibBに対してリンクする必要があります。
このような動作を排除し、実際に使用されているライブラリにのみリンクして、クライアントのコード内のシンボルを推測する方法を知っていますか?
ありがとうございました。