3.3. Makefile の使用


複数のソースファイルで構成される複雑なプログラムを構築するには、makeMakefile と呼ばれる設定ファイルを使用して、プログラムのコンポーネントをコンパイルし、最終的な実行可能ファイルを構築する方法を制御します。Makefile には、作業ディレクトリーのクリーニング、プログラムファイルのインストールおよびアンインストール、およびその他の操作の指示を含めることもできます。

make は、現在のディレクトリーの GNUmakefilemakefileMakefile というファイルを自動的に使用します。別のファイル名を指定するには、-f オプションを使用します。

$ make -f make_file

Makefile 構文の詳細の説明は、本ガイドの対象外です。GNU make、アップストリームの GNU make マニュアルを参照してください。これは、GNU make ユーティリティー、Makefile 構文、その使用方法を詳細に説明しています。

完全な make マニュアルは、インストールの一部として Texinfo 形式でも利用できます。このマニュアルを表示するには、次のコマンドを実行します。

$ scl enable devtoolset-9 'info make'

例3.2 例: Makefile を使用した C プログラムの構築

例3.1「make を使用した C プログラムの構築」 で紹介されている簡単な C プログラムを構築するために Makefile という名前が付けられた以下の汎用 Makefile について考えてみましょう。Makefile は変数を定義し、ターゲットレシピで構成される 4 つの ルール を指定します。レシピの行は、TAB 文字で開始する必要があることに注意してください。

CC=gcc
CFLAGS=-c -Wall
SOURCE=hello.c
OBJ=$(SOURCE:.c=.o)
EXE=hello

all: $(SOURCE) $(EXE)

$(EXE): $(OBJ)
        $(CC) $(OBJ) -o $@

.o: .c
        $(CC) $(CFLAGS) $< -o $@

clean:
        rm -rf $(OBJ) $(EXE)

この Makefile を使用して hello.c プログラムを構築するには、make ユーティリティーを実行します。

$ scl enable devtoolset-9 'make'
gcc -c -Wall hello.c -o hello.o
gcc hello.o -o hello

これにより、現在の作業ディレクトリーに、新しいオブジェクトファイル hello.o と新しいバイナリーファイル hello が作成されます。

作業ディレクトリーを消去するには、以下のコマンドを実行します。

$ scl enable devtoolset-9 'make clean'
rm -rf hello.o hello

これにより、作業ディレクトリーからオブジェクトおよびバイナリーファイルが削除されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.