2017-05-23 12 views
0

ソースコードを持っていて、スタティックライブラリとしてコンパイルすると、.libファイルがあります。 first.libとしましょう。スタティックライブラリで共有ライブラリを構築する

私は前のコードから関数を呼び出す他のソースコードを持っています。このコードを共有ライブラリとしてビルドし、first.libをリンカの入力として与えます。今私はsecond.lib、second.dllを持っています。

これまでのところ、すべてが機能します。 しかし、私は、second.dllとfirst.libも使用しているEXEアプリケーションを作成したいと思います。私はsecond.dllとリンクし、アプリケーションをビルドするときにリンカの入力としてfirst.libを与えます。

私のアプリケーションにはfirst.libの内容が2回含まれていますか?私の場合、それはそうであるようです。

答えて

1

私のアプリケーションにはfirst.libの内容が2回含まれていますか?

答えは「ちょっと」です。

静的ライブラリをリンクすると、実際に使用しているパーツのみがDLLまたは実行可能ファイルに含まれているわけではありません。

したがって、静的ライブラリの一部はDLLにあり、ライブラリの一部は実行可能ファイルにあり、おそらくライブラリの一部が両方にあります。

+0

重複を避けるよう提案することはできますか? –

+0

first.dllにfirst.libをラップし、second.dllと実行可能ファイルの両方のリンクを持っています。しかし、Windowsではfirst.libからすべてのシンボルをエクスポートする必要があります。 – Frank

関連する問題