19

静的 C++ ライブラリ static.lib があり、shared.lib などの C++ 共有ライブラリからいくつかの関数を呼び出したいとします。出来ますか?

ここで、static.lib にリンクしているが shared.lib にはリンクしていない shared2.lib など、別の共有ライブラリがあるとします。この場合、リンカーは自動的に shared2.lib を shared.lib にリンクしますか?

Microsoft Visual Studio 2003 を使用しています。

4

3 に答える 3

7

リンカーは他のライブラリを自動的に取り込みませんが、#pragma コメント (lib、"static.lib")を使用して、プラグマをヘッダー ファイルに追加することにより、追加のファイルをリンクするプロセスを簡素化できます。

于 2009-08-07T04:09:49.800 に答える
1

静的 C++ ライブラリ static.lib があり、shared.lib などの C++ 共有ライブラリからいくつかの関数を呼び出したいとします。出来ますか?

はい、たとえば、静的ライブラリ内からウィンドウ関数を呼び出す場合、それらは通常、動的ライブラリからのものであるため、違いはありません。

ここで、static.lib にリンクしているが shared.lib にはリンクしていない shared2.lib など、別の共有ライブラリがあるとします。この場合、リンカーは自動的に shared2.lib を shared.lib にリンクしますか?

このような依存関係があると、後で問題が発生する可能性があります。代わりに、LoadLibrary()を使用してライブラリを動的にロードすることをお勧めします。これにより、コンパイル/リンク中にそのような依存関係を追跡する必要がなくなります。

于 2009-08-07T05:53:57.967 に答える