12,964
回編集
(→概要) |
|||
55行目: | 55行目: | ||
== Makeコマンドの基本 == | == Makeコマンドの基本 == | ||
<code>make</code>コマンドは、主にソースコードからプログラムをビルドする時に使用するツールである。<br> | |||
主に、ファイル間の依存関係を管理して、必要な部分のみを効率的に更新することにある。<br> | |||
<br> | |||
<code>make</code>コマンドの動作の中心となるのは、Makefileと呼ばれる設定ファイルである。<br> | |||
Makefileファイルには、ターゲット (生成したいファイルや実行したい操作)、依存関係、それらを生成するためのコマンドが記述されている。<br> | |||
<br> | |||
基本的なMakefileファイルの構造を、以下に示す。<br> | |||
<ターゲット>: <依存ファイル> | |||
<コマンド> | |||
<br> | |||
以下の例では、簡単なC言語のプログラムをコンパイルするMakefileファイルである。<br> | |||
<syntaxhighlight lang="make"> | |||
program: main.o utils.o | |||
gcc -o program main.o utils.o | |||
main.o: main.c | |||
gcc -c main.c | |||
utils.o: utils.c | |||
gcc -c utils.c | |||
</syntaxhighlight> | |||
<br> | |||
<code>make</code>コマンドを実行する時、Makefileファイルを読み取り、必要なファイルのみをコンパイルする。<br> | |||
例えば、main.cファイルのみを変更した場合は、<code>make</code>コマンドはmain.oとprogramのみを再ビルドして、utils.oは再コンパイルしない。<br> | |||
<br> | |||
また、<code>make</code>コマンドには様々なオプションが存在する。<br> | |||
* -f <ファイル名> | |||
*: 特定のMakefileファイルを指定して実行する。 | |||
* target | |||
*: 特定のターゲットのみをビルドする。 | |||
* -j <数値> | |||
*: <数値>個の並列ジョブを実行してビルドを高速化する。 | |||
<br> | |||
<code>make</code>コマンドのメリットは、大規模なプロジェクトでも効率的にビルドプロセスを管理できることである。<br> | |||
また、Makefileファイルを適切に設計することにより、クロスプラットフォーム開発、テスト、デプロイメント等も容易になる。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>Makefileファイルのシンタックスは独特であり、特にタブとスペースの使い分けに注意が必要である。</u><br> | |||
<u>また、複雑なプロジェクトではMakefileファイル自体が大きくなり、管理が難しくなることがある。</u><br> | |||
<br><br> | <br><br> | ||