gccとは何か
連載ナビ
この連載は「Linuxを使えるようになる」ではなく、「Linuxがどう動いているのか」を理解するための実践シリーズです。
今回は Linuxを理解する 〜 LFSで学ぶLinux内部構造 〜 の Part 3 / 第3回として、仕組みのつながりを意識しながら学びます。
- 前回: toolchainとは何か
- 次回: glibcとは何か
gccはC/C++などのソースコードを機械語へ変換するコンパイラです。
LFSでは中心となる道具です。
この記事でわかること
- コンパイルの流れ
- gccの役割
- 最低限の確認方法
図解テキスト
main.c -> gcc -c -> main.o -> gcc(main.o) -> a.out
この回で実行するコマンド
上から順番に実行すれば、この回の内容を体験できます。
まずはそのままコピペして実行し、次に1行ずつ意味を確認してください。
cat > /tmp/hello.c <<'EOF'
#include <stdio.h>
int main(void){ puts("hello"); return 0; }
EOF
gcc -o /tmp/hello /tmp/hello.c
/tmp/hello
ハンズオン手順
1. ターミナルを開いて、上のコマンドを1行ずつ実行する
2. 出力結果を見て、分かったことを1行メモする
3. エラーが出たら、そのエラーメッセージをそのまま残す
4. 各コマンドが何を確認するためのものかを説明してみる
チェックポイント
- コマンドが最後まで実行できた
- 出力の中で重要な値を1つ説明できる
- 次の回に進む前に、分からない単語を1つ調べた
今回理解できたこと
- gccはソースを実行可能にする入口
- オブジェクト生成とリンクの2段階がある
- ビルド失敗の切り分けがしやすくなる