30秒で覚えるgccの使い方入門

準備

まずC言語でソースコードを書きます。
breakfast.c
breakfast() {

}
dinner.c
dinner() {

}
lunch.c
lunch() {

}
main.c
main(){
  breakfast();
  lunch();
  dinner();
  return 0;
}

gccでビルド

4つの.cファイルから、実行ファイル"unko"を生成します。
$ gcc -o unko breakfast.c lunch.c dinner.c main.c
unkoバイナリができました。
$ ls
breakfast.c  dinner.c  lunch.c  main.c  unko
unkoを実行
$ ./unko
実行しても何もおきませんが、終了ステータスはちゃんと0になっています。
$ echo $?
0

コンパイルとリンクを別フェーズにわけて実行する

先ほどはコンパイルとリンクを一括でやってしまいましたが、別々に行うこともできます。
コンパイル"のみ"を行う
$ gcc -c breakfast.c lunch.c dinner.c main.c
breakfast.o lunch.o dinner.o main.oファイルが生成されます。
.oファイルは「リロケータブルオブジェクトファイル」といいます。
リンクする
.oファイルをリンクして"unko"バイナリを作ります。
$ gcc -o unko breakfast.o lunch.o dinner.o main.o
以上です。
カテゴリ: