complex programs usually consist of multile source files. To understand the flow of compiling them and combining into the target object, I demonstrate how to build emacs (temacs, a vanilla emacs core) with make command, in this video.
*** これはプログラミング演習用の自習ビデオです ***
分割コンパイル(separate compilation)の実例
GNU Emacs 23.0.60はおおよそ125個のCファイル、合計34万行からなっている(C言語以外で記述されている部分については省略)。これをコンパイルするにはmakeコマンドを利用(入力)する。すると、それぞれのCファイルが:
gcc -c *.c -I*
でコンパイルされる(この時-Iは必要だが(大文字のアイ)-lは要らない(小文字のエル))。これで125個の*.oが作成される。-cを付けるとコンパイルするファイルの中にmain関数はなくてよいし、リンクもされない。
*.oの生成が終ったら全てを目的プログラムtemacsにまとめるために:
gcc -o temacs *.oの羅列 -l各種ライブラリ
で結合(リンク)する。この際にはライブラリ関数を結合するために-lが必要になる(小文字のエル)。
なお、一連の動作を自動化するために、Makefileに生成手順のルールを記述してある。従って実際にユーザが入力するのは:
make temacs
である。(-j2はデュアルコアCPUでの並列コンパイル用の指示)。
Link to this comment:
All Comments (0)