teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

Windowsのインポートライブラリについての記述は誤りを含んでおり不要のため削除

2020/06/10 16:46

投稿

anndonut
anndonut

スコア667

answer CHANGED
@@ -10,6 +10,4 @@
10
10
 
11
11
  静的リンクライブラリがどうして存在するかというと、コンパイル済みのコード片が必要だからであり、静的リンクライブラリはリンカによってオブジェクトファイルを集約したものになります。ここで再びリンカを使うことによってユーザーが書いたオブジェクトファイルと静的リンクライブラリをリンクさせることができます。
12
12
 
13
- Windowsプログラミングではヘッダファイル・静的リンクライブラリの他に動的リンクライブラリが登場します。動的リンクライブラリを作成すると、それに対応した静的リンクライブラリが作成されるのです。これは分かりづらいのですが、関数の本体は動的リンクライブラリ(.dll)に格納され、その本体コードを呼び出すためのラッパー関数が静的リンクライブラリ(.lib)に格納されるのです。
14
-
15
13
  どうしてC言語ではヘッダファイルと静的リンクライブラリの2種類を用意しなければならないかということですが、C言語がアセンブリ言語の代替として登場したというのもあります。オブジェクトファイルはC言語だけでなくアセンブリコードからも生成されます。そこで静的リンクライブラリはアセンブリ言語と互換性のある部分であり、ヘッダファイルは純粋にC言語固有の部分なのです。