ホームページ > バックエンド開発 > C++ > 外部依存関係のある単一ファイル プロジェクト用の単純な C メイクファイルを作成するにはどうすればよいですか?

外部依存関係のある単一ファイル プロジェクト用の単純な C メイクファイルを作成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-10 05:44:16
オリジナル
389 人が閲覧しました

How to Create a Simple C   Makefile for a Single-File Project with External Dependencies?

シンプルな C Makefile を作成する方法

このガイドでは、最小限の依存関係で C プロジェクトの Makefile を作成する簡単な方法を説明します。

問題:

あなた「/user/cse232/Examples/example32.sequence.cpp」からクラスをインポートする単一ファイル a3driver.cpp を含むプロジェクトの Makefile を作成する必要があります。目標は、a3a.exe という名前の実行可能ファイルを生成することです。

解決策:

1。 Makefile を作成します:

プロジェクト ディレクトリに Makefile という名前のファイルを作成します。

2.変数の定義:

まず、Makefile 全体で使用される変数を定義します:

CC = g++
CFLAGS = -g
LDFLAGS = -g
LDLIBS = -lstdc++ -lm
ログイン後にコピー
  • CC: C コンパイラ。
  • CFLAGS: コンパイルC ソース ファイルのフラグ。
  • LDFLAGS: リンク フラグ。
  • LDLIBS: リンクに必要なライブラリ。

3.ターゲットの指定:

次に、プロジェクトのターゲットを定義します:

all: a3a.exe
a3a.exe: a3driver.o example32.sequence.o
a3driver.o: a3driver.cpp
example32.sequence.o: example32.sequence.cpp
ログイン後にコピー
  • all は、実行可能ファイルをビルドするデフォルトのターゲットです。
  • a3a .exe は実行可能ターゲットです。

4.依存関係の定義:

各ターゲットの依存関係を定義:

  • a3a.exe は a3driver.o および example32.sequence.o に依存します。
  • a3driver .o に依存しますa3driver.cpp.
  • example32.sequence.o は example32.sequence.cpp.

5 に依存します。ルールの定義:

各ターゲットとその依存関係に対して実行されるコマンドを指定します:

a3driver.o:
    $(CC) $(CFLAGS) -c a3driver.cpp

example32.sequence.o:
    $(CC) $(CFLAGS) -c example32.sequence.cpp

a3a.exe: a3driver.o example32.sequence.o
    $(CC) $(LDFLAGS) -o a3a.exe a3driver.o example32.sequence.o $(LDLIBS)
ログイン後にコピー
  • これらのルールはソース ファイルをコンパイルし、それらをリンクして実行可能ファイル。

6.クリーン ターゲットの定義 (オプション):

すべてのビルド アーティファクトを削除するクリーン ターゲットを定義することもできます:

clean:
    rm -f a3driver.o example32.sequence.o a3a.exe
ログイン後にコピー

7。 Makefile を実行します:

プロジェクトをビルドするには、コマンド ラインから make を実行します。これにより、a3a.exe 実行可能ファイルが作成されます。

注:

Unix ベースのシステムでは実行可能ファイルにファイル拡張子が使用されないため、a3a.exe ターゲットにはMakefile 内の拡張子。

以上が外部依存関係のある単一ファイル プロジェクト用の単純な C メイクファイルを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート