Lから始まるLinux

5章22話
アーカイブ
5章23話 ビルド(手順)
もくじ
5章24話
ビルド(実践)
ビルド(手順)
若木 みどり
お兄ちゃん! ソースコードから プログラムを作るには どうすればいいのかな?
若木 しげる
そのことを 「ビルド(build)」と呼ぶよ ビルド手順は使うツールや プログラム言語などによって 変わってくるんだ
若木 しげる
今回は Linux で一般的な C や C++ 言語での ビルドを説明するね
必要なパッケージ
若木 しげる
ビルドには 以下のパッケージが必要だよ
パッケージ 役割
gcc コンパイラ(ソースコードから実行ファイルを生成)
make ビルドツール(コンパイラの動作を統括)
若木 しげる
ソースコードによっては 以下のようなパッケージが 追加で必要になる場合があるよ
パッケージ 役割
autoconf configure スクリプト生成
automake Makefile ファイル雛形生成
flex 字句解析
bison 構文解析
pkg-config パッケージ管理
libtool ライブラリ管理
m4 マクロ処理
patch ソースコード修正
ncurses 画面描画ライブラリ
若木 みどり
追加パッケージは どうやって知ればいいのかな?
若木 しげる
たいていソースコードには README や INSTALL ファイルが付属しているよ この中に必要なパッケージやビルド手順が 書かれていることが多いからこれを読もう!
configure
若木 しげる
多くの場合ソースコードと一緒に configure スクリプトが 付属しているんだ これは以下のようなビルドの 前準備をしてくれるツールだよ
  • マシン環境(OS, 必要パッケージなど)の確認
  • 機能の有効/無効の設定
  • ビルド設定ファイル Makefile 生成
若木 しげる
どんな指定ができるかは --help オプションで 調べられるよ
./configure --help
若木 みどり
そのプログラム独自の機能などの確認ができるんだね
若木 しげる
そうしたら必要なオプションを指定してconfigure スクリプトを実行しよう!
./configure
若木 みどり
簡単そうだけど失敗することってある?
若木 しげる
失敗する場合は必要なライブラリやツールが無い場合がほとんどだよエラーメッセージを読んで不足しているものをインストールしてあげよう
make
若木 しげる
次に make を実行しようこれで実行ファイルを生成してくれるよ
make
若木 みどり
これだけで作ってくれるんだ?!
若木 しげる
configure スクリプトが生成したMakefile の指示に従って動作しているだけだからね
若木 しげる
make が何をしているのか気になるのならMakefile を覗いてみるといいよ
less Makefile
make install
若木 しげる
ビルドが終わったらインストールだよ成果物を所定のディレクトリへ配置しよう!
make install
若木 しげる
/usr 配下などにインストールする場合は書き込みができるようsudo が必要となるよ
まとめ
若木 みどり
今回はソースコードから実行ファイルを作るビルドを学んだよ!configure スクリプトと make簡単にできてしまうんだね!
若木 しげる
これらの定型的な手順は「CMMI(configure-make-make-install)」と呼ばれているよ次回は実際にソースコードから実行ファイルを作ってみよう!