0

本当に同じものであるA.libB.dll (独自のB.libを持つ) があるとします (それらはヘッダーとシンボルを共有します)。

両方とリンクするアプリケーションが必要ですが、A.libを介してのみこれを行いたいです。基本的に、 B.libと明示的にリンクしなくても、 B.dll からエクスポートされたシンボルを見つけることができるリンカーが必要です。

理想的には、A.libを完全に排除し、一部のコードをB.libに、残りをB.dllに配置したいと考えています。

編集

私の目的は、ライブラリ ユーザーにそれらへのポインタを提供することを強制することなく、リンクするアプリケーション内の特定の特別な名前のシンボルを直接操作できるライブラリを作成することです。上記のシンボル (ほとんどの関数) はツールによって生成されるため、通常、名前には説明的な値がありません (非常に多数であることは言うまでもありません)。

4

1 に答える 1

2

C などの静的ライブラリ プロジェクトをソリューションに追加できます。追加の依存関係として A.lib と B.lib のみを使用し、コードは使用しません。lib.exe を実行し、A.lib と B.lib を C.lib にマージします。後続のプロジェクトはどれにリンクできますか。

プロジェクトの依存関係を調整して、すべてが正しい順序でビルドされていることを確認する限り、それは機能するはずです。C プロジェクトは A と B に依存し、C.lib を使用するものはすべて C に依存します。このように依存関係を隠すことは、最善の方法ではありません。

于 2012-08-22T14:28:24.367 に答える