ランタイムライブラリとは何ですか?私はthisを読んだので、その目的についてまともな理解を持っていますが、それはファイルですか?それはあなたが明示的に標準ライブラリのように含めることができるものですか?特にランタイムライブラリは何ですか?
答えて
静的および動的(実行時)ライブラリがあります。
コンパイル時に実行可能ファイルに静的ライブラリのコードが格納されます(リンカがこれを行います)。つまり、このコードは実行可能ファイルを膨らませることができますが、すべてのコンピュータに同じコードがあります。
動的ライブラリ(Windowsでは.dll、Linuxでは.so)を使用すると、関数はリンクとして保存されます(ABC.dllからXYZ()を呼び出す)。バイナリを実行すると、OSは実行可能ファイルのアドレス空間にライブラリをロードし、リンクを解決します。したがって、実行可能ファイルは小さく、ライブラリは多くのプログラムで使用できます。このライブラリにバグがある場合は、プログラムごとに1回だけ置き換えなければなりません。しかし、これはライブラリのインターフェイスが慎重に変更された場合にのみ機能します。そうでなければ、DLL地獄へようこそ。
まずはという概念:ターゲットプラットフォームで言語機能を提供するために必要なコードです。
つまり、strlen
とfeclearexcept
とofstream::operator<<
の実装であり、この言語で使用できる他のすべての標準ライブラリ関数です。
また、プログラムの起動時に正しい引数を指定して「main」が呼び出され、ターゲットOSとのやり取りが行われるなど、「グルーコード」が含まれることもあります。多くの概念と同様に
、それは(ファイルなどの物理とすることができます)異なる「物理的」な症状をています。彼らは言語の実装の詳細に依存するが、一般的に以下のとおりです。インライン実装(例えば標準テンプレートLibary)
静的ライブラリ(.objファイルまたは.libファイルが含まれているコンパイル時に利用できる
ヘッダファイルは、 )ファイルを作成し、リンク時に実行ファイルにインクルードします。
動的ライブラリ(.dllファイルまたは.soの)実行時に利用できるようにする必要があるファイル
実行可能
典型的なCを作成するときに、「コンパイラやリンカが行う特別なもの」++プログラムは "すべての上記"を見るかもしれません。
静的ライブラリは、通常はC、C++または、多くの場合、対象OSのfucntionality(fstreams用などのWindows CreateFile
)
動的ライブラリパッケージ(の大部分を使用して、標準ライブラリ関数を実装するアセンブリコードから作成されます).dllまたは.soとしてのこれらの静的ライブラリ。
ランタイムをターゲットプラットフォームにインストールする必要がありますが、実行可能ファイルのサイズが縮小され、既にインストールされているアプリケーションにはランタイムへの更新のメリットがあります。
述べたように、これは、実装依存あります。ランタイムに関連付けられ、ランタイムに含まれる追加のファイル(データファイル、設定ファイル、デバッグシンボル、アイコンなど)がいくつでも存在する可能性があります。
ここで重要なのは、言語がターゲットプラットフォームの抽象化を提供し、抽象化レイヤーがランタイムに実装されていることです。
- 1. ランタイム環境、ランタイムエンジン、およびランタイムライブラリの違いは何ですか?
- 2. javaコンパイルとランタイムライブラリ
- 3. MATLAB interopサーバー(オートメーションサーバー)は、ランタイムライブラリで使用できますか?
- 4. 特に「Facebook ID」は何ですか?
- 5. 特にデバッグとは何ですか?
- 6. のMicrosoft Visual C++ランタイムライブラリ
- 7. DirectShowランタイムライブラリはDirectXランタイムに含まれていますか?
- 8. Powershell関数スクリプトは何ですか:functionnameは何ですか?特にスクリプト:part
- 9. コンパイラを書くときにランタイムライブラリが必要なのはなぜですか?
- 10. NSObjectクラスは、(Foundationコンポーネントではなく)Objective-Cランタイムライブラリの一部ですか?
- 11. VC++ 2008プロジェクトでVC++ 2010ランタイムライブラリを使用
- 12. gccでPGI OpenACCランタイムライブラリを直接リンク
- 13. UIスレッドの特色は何ですか?
- 14. 0x55AAの特典は何ですか?
- 15. VS2015静的にランタイムライブラリをリンクしない
- 16. /MTランタイムライブラリの設定にかかわらずMSVCP140.dll
- 17. 特殊化図とは何ですか?その用途は何ですか?
- 18. 現在、Visual C++の動的ランタイムライブラリはWindows OSの一部ですか?
- 19. クロージャーには特別なものは何ですか?
- 20. 特にproject.cljとは何ですか:依存関係は必須ですか?
- 21. recyclerViewアダプタの特定の位置で何かするには?
- 22. ファサードとは何ですか? (特にLaravelの場合)
- 23. Monadsについて特別なものは何ですか?
- 24. Cランタイムライブラリ(CRT)のどのバージョンがロードされていますか?
- 25. Visual Studio 2008ランタイムライブラリの使用法のアドバイス
- 26. NS代理店の制限は何ですか、特にMOQとは何ですか?
- 27. rallyから返される特定のプロパティは何ですか?
- 28. アンドロイドのシングルトンは特別なものは何ですか?
- 29. JavaScriptの "name"変数の特色は何ですか?クロームデベロッパーツールウィンドウで
- 30. C#での 'is' reflectionのパフォーマンス特性は何ですか?
@ user0042入力いただきありがとうございますが、これはランタイムライブラリが実際に何を表示していますか?あなたが読むことができる物理的なファイルのように、等... – Rocket
私が述べたように、私はその用語について読んでいます。私は彼らができることのいくつかの例を愛するだろう。 – Rocket
ランタイムライブラリは、正しく動作するためにユーザプログラム(例えば、あなたが書いたもの)が必要とするコード(関数など)の集まりです。例えば、 'main()'関数が呼び出される前に実行されるC++標準ライブラリとコードは、通常ランタイムライブラリの一部です。ほとんどのC++プログラムは、それがなければ役に立たないものは何もできません。ランタイムライブラリは、独立した実行可能ファイル(例えば、あなたのプログラムが実行することができないWindows DLLウィンドウ)であってもよいし、構築時に直接実行ファイルにコードをコピーして、プログラムが "スタンドアロン" 。可能性は – Peter