ライブラリには次の 2 種類があります。
オペレーティング システムに同梱されているライブラリは、通常、インポート ライブラリです。
結局のところ、実際のコードはオペレーティング システム自体にあります。インポート ライブラリは、オペレーティング システムで提供されるコードの使用方法を示すだけです。
なぜこれが必要なのですか?プログラムは、実行中にオペレーティング システムで使用可能なライブラリを「検出」する方法がないため、プログラムは、コンパイル時に何が使用可能になるかを認識している必要があります。
コンパイラに付属しているものは、通常はコード ライブラリです。これらには、プログラムをコンパイルするためにコンパイラーが必要とするコード (特定のコンパイラーによって異なります) が含まれています。
ただし、ライブラリの「標準形式」は 1 つではありません。Microsoft は COFF を使用しますが、*nix ツールは ELF を使用します。
そのため、Microsoft がシステム用のインポート ライブラリを出荷するときは、COFF 形式でのみ出荷します。これは、Visual C++ コンパイラには適していますが、他のコンパイラにはあまり役に立ちません。
これにより、MinGW などのコンパイラ ベンダーは、対象とするオペレーティング システム用に独自のインポート ライブラリを作成することを余儀なくされます。これらのライブラリの目的は、オペレーティング システム ベンダー (Microsoft など) が提供するものとまったく同じです。 、しかしそれらの形式は異なります。
そのため、一見似たようなライブラリが複数の方法で提供されています。