相違点: 1. 静的ライブラリの拡張子は通常「.a」または「.lib」ですが、動的ライブラリの拡張子は通常「.so」または「.dll」です。 2. 静的ライブラリはコンパイル中にターゲット プログラムに直接統合され、正常にコンパイルされた実行可能ファイルは独立して実行できますが、動的ライブラリはコンパイル中に接続されたターゲット プログラムに配置されません。つまり、実行可能ファイルは独立して実行できません。 。
このチュートリアルの動作環境: Windows 10 システム、Dell G3 コンピューター。
静的ライブラリと動的ライブラリの最も重要な違いは、ライブラリ がターゲット (プログラム) にコンパイルされるかどうかです。
静的 (関数) ライブラリ
一般的な拡張子は (.a
または .lib
) で、このタイプの関数です。通常、ライブラリには libxxx.a
または xxx.lib
という拡張子が付いています。
このタイプのライブラリは、コンパイル中に ターゲット プログラムに直接統合されるため、静的関数ライブラリを使用してコンパイルされたファイルは大きくなります。このタイプの関数ライブラリの最大の利点は次のとおりです。コンパイルが成功したことを確認します。実行可能ファイルは、関数ライブラリの内容を読み取るための外部リクエストを必要とせずに独立して実行できますが、アップグレードの容易さの点では明らかに利点がありません。関数ライブラリが更新される場合は、再コンパイルする必要があります。
動的関数ライブラリ
動的関数ライブラリの拡張子は通常 (.so または
.dll) です。通常、クラス関数ライブラリの名前は
libxxx.so または
xxx.dll です。
要約すると、次のことはわかりません:
製品化の観点から、公開されるアルゴリズム ライブラリまたは関数ライブラリは可能な限り動的ライブラリであるべきです。そのため、更新とアップグレードが便利で、実行可能ファイル全体を再コンパイルするには、古いダイナミック ライブラリを新しいバージョンのダイナミック ライブラリに置き換えるだけです。 関数ライブラリの統合の観点から見ると、公開されているすべてのサブライブラリ (複数) を動的ライブラリに統合して外部インターフェイスを提供したい場合は、すべてのサブライブラリを静的ライブラリにコンパイルする必要があります。 , そのため、すべてのサブライブラリはすべてターゲットの動的ライブラリにコンパイルでき、最終的に統合されたライブラリは外部に機能を提供します。 関連知識の詳細については、FAQ 列をご覧ください。
以上が動的ライブラリと静的ライブラリの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。