「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか?
こんにちは。
前回の記事ではリンカーの概要と『リンカ・ローダ実践開発テクニック』という本について紹介しました。リンカーとはなにか、どんな仕事をしているのかについてなんとなくイメージできたかなと思います。
今回はオブジェクトファイルについて少し詳細を話していきます。
オブジェクトファイルとは
前回の記事では次のように説明しました。
オブジェクトファイルはソースファイル単位で独立してコンパイルすることができ、命令やグローバルな変数、定数といったデータを持っています。
オブジェクトファイルにはフォーマットがあって、OSによって異なっています。
それぞれのフォーマットは次の表に示します。
OS | フォーマット |
---|---|
Unix/Linux | ELF(Executable and Linkable Format) |
macOS | Mach-O(Mach object) |
Windows | COFF(Common Object File Format) |
今日のウェブシステム開発ではコンテナが主流で、ELFはなんとなく知っている方もいるのではないと思うので、今回はELFについて少し掘り下げていきます。