No.239開発とビルド
linker
リンカ
答えひとことで
リンカは、分かれている部品をつなぎ合わせて、実行できる形に仕上げる仕組みです。
loader との違いリンカはローダーと近い場面で登場しますが、同じ意味ではありません使うコマンドfile
くわしく
リンカ(linker)は、コンパイル済みのオブジェクトファイルに含まれる未解決シンボルを、他のオブジェクトファイルやライブラリの定義と対応付けて解決します。そのうえで、配置すべきアドレスや参照先を確定し、最終的な実行ファイルや共有ライブラリを出力します。Linuxでは、GCCやClangの背後でld系のリンカが動いていることが多く、静的リンクか動的リンクかによって結果が変わります。リンクエラーは、関数定義の不足、ライブラリ指定順、互換性のないオブジェクト混在などで起こるため、リンカはビルド終盤の重要な役割を持つ用語です。
なぜ大事?
リンカの役割を理解すると、コンパイルが通ったのに実行ファイルが作れない場面で、原因をリンク段階に絞って考えられます。
undefined referenceなどのエラーが出た時、静的リンクと動的リンクの違いを読む時、共有ライブラリの依存を確認する時に重要です。
リンカはローダーと同じではありません。リンカはビルド時に部品を結合し、ローダーは実行時に必要な共有ライブラリを読み込みます。
どこで出会う?
ビルドログ、リンカエラー、共有ライブラリの依存確認
リンカとローダーは何が違いますか?
使い方の例
- ビルドログでリンク段階のエラーを見つけ、未解決シンボルの原因を特定する。
まちがえやすい言葉と由来
linkerVSloader
リンカはローダーと近い場面で登場しますが、同じ意味ではありません。リンカはオブジェクトファイルやライブラリを結合して最終的な実行形式を作る処理系です。一方、ローダーは実行ファイルや共有ライブラリをメモリへ読み込み準備する仕組みです。
ことばの地図
関係するコマンド
よくある質問
リンカはビルド時にオブジェクトファイルとライブラリを結合する仕組みで、ローダーは実行時に必要な共有ライブラリを読み込む仕組みです。
リンク段階で何が確定するか説明できるか
資格試験では
- LPIC-2 201大事ビルド、リンク、実行形式、開発基盤の理解リンカはビルド、リンク、実行形式、開発基盤の理解に関わる語で、試験範囲の文章、設定、障害時の説明を読み解く土台になります。
- LinuC レベル2 201大事ビルド、リンク、実行形式、開発基盤の理解リンカはビルド、リンク、実行形式、開発基盤の理解に関わる語で、試験範囲の文章、設定、障害時の説明を読み解く土台になります。
linker を最後まで読みました。
Linux 用語辞典に戻る218 / 512