C言語では、スタティックライブラリとダイナミックライブラリの違いは何ですか? Windowsでスタティックライブラリとダイナミックライブラリの違い
答えて
この質問は少し説明が広すぎますが、私はあなたにあなたがさらに勉強できる基本的な考えを提供しようとします。
まず、ライブラリが何であるかを知る必要があります。基本的には、ライブラリは関数の集まりです。私たちのコードやその特定のファイルで定義されていない関数を使用していることに気づいたかもしれません。それらにアクセスするために、これらの関数の宣言を含むヘッダファイルをインクルードします。コンパイル後、リンクと呼ばれるプロセスがあり、それらの関数宣言を別のファイルにある定義とリンクします。この結果は、実際の実行可能ファイルです。
ここで説明したように、リンクは静的リンクです。つまり、すべての実行可能ファイルには、必要なすべてのライブラリ(関数のコレクション)が含まれています。これは、同じ機能が必要な多くのプログラムが存在するため、スペースの無駄です。この場合、メモリ内には同じ機能のより多くのコピーが存在します。動的リンクは、コンパイル時ではなく、実行時にリンクすることでこれを防ぎます。これは、すべての機能が特別なメモリ空間にあり、すべてのプログラムが複数のコピーを持たずにアクセスできることを意味します。これにより、必要なメモリ量が削減されます。
私は答えの冒頭で述べたとおり、これは基本的な理解を得るための非常に簡単な説明です。私は強くあなたがこのトピックについてもっと学ぶことを勧めます。
簡潔でよく説明されています。ありがとうございました! – SRG
:
静的ライブラリは、実行可能ファイル内でリンクされますと、時間とともに変化しませんの.libファイルです。
ダイナミックライブラリは、実行可能ファイルにリンクされている.dllファイルであり、実行時に読み込むdllファイルによって異なる場合があります。
わかりませんLinuxで。 – Daniel
- 1. スタティックライブラリとリロケータブルオブジェクトファイルの違いは?
- 2. MSVCでスタティックライブラリとダイナミックライブラリの両方とリンクする
- 3. gccのスタティックライブラリを他のダイナミックライブラリにリンクする方法は?
- 4. スタティックライブラリをVisual Studioのダイナミックライブラリにリンクすることはできますか?
- 5. XCodeスタティックライブラリにダイナミックライブラリとのリンケージが必要な場合がありますか?
- 6. iOSのダイナミックライブラリとダイナミックフレームワークの違いは何ですか?
- 7. LKM(ロード可能なカーネルモジュール)をスタティックライブラリまたはダイナミックライブラリにリンクする方法は?
- 8. Qtとダイナミックライブラリのサンプルコード
- 9. スタティックライブラリとダイナミック(デバッグ)ライブラリのサイズの違いと最終的なexeへの影響
- 10. EARダイナミックライブラリ
- 11. C++ダイナミックライブラリ
- 12. XCodeのダイナミックライブラリ
- 13. スタティックライブラリ
- 14. スタティックライブラリ
- 15. 共有ライブラリとスタティックライブラリのリンク
- 16. スタティックライブラリを別のスタティックライブラリにリンクする
- 17. C++のスタティックライブラリ&C++アプリケーションでのwxwidgetsの設定の相違点
- 18. ダイナミックライブラリの再設定
- 19. g ++はダイナミックライブラリで間違ったシンボルを生成します
- 20. スタティックライブラリの作成
- 21. Macバイナリをダイナミックライブラリとしてロード
- 22. libstdC++ダイナミックライブラリでの静的リンク
- 23. スタティックライブラリ(.lib)ビジュアルスタジオのコードカバレッジ
- 24. 「プラグイン」スタティックライブラリの提案
- 25. スタティックライブラリからのコールバック
- 26. スタティックライブラリのオブジェクト登録
- 27. Xcode 4プロジェクト(ビルド時のアプリとスタティックライブラリ - クリーンライブラリ)
- 28. スタティックライブラリと共有ライブラリの混在
- 29. Cocoaアプリケーションでダイナミックライブラリをアンロードできない
- 30. ユニットテストC++スタティックライブラリ
この [http://stackoverflow.com/questions/20229364/what-is-the-difference-between-a-static-library-and-a-dynamic-one][1] をお試しください [1]:私は、DLLを持ってhttp://stackoverflow.com/questions/20229364/what-is-the-difference-between-a-static-library-and-a-dynamic-one – Stef