[解決済み] makefile の記号 $@ と $< はどういう意味ですか?
2022-03-18 10:22:03
質問
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
は何をするのでしょうか?
$@
と
$<
は正確に行うのですか?
どのように解決するのですか?
$@
は生成されるターゲットの名前、そして
$<
最初の前提条件(通常はソースファイル)。これらすべての特殊変数の一覧は
GNU Makeマニュアル
.
例えば、次のような宣言を考えてみましょう。
all: library.cpp main.cpp
この場合
-
$@
は、次のように評価されます。all
-
$<
は、次のように評価されます。library.cpp
-
$^
は、次のように評価されます。library.cpp main.cpp
関連
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】Makefileの中の.PHONYの目的は何ですか?
-
[解決済み] Makefile のターゲットとしてグロブパターンを指定する
-
undefinedmakefile *** セパレータがありません。
-
[解決済み] makefileでLDFLAGSを使用する方法
-
[解決済み] GNU Makefile の変数割り当て =, ?=, :=, += の違いは何ですか?
-
[解決済み] MakefileとCMakeを使ったコンパイルの違いについて
-
[解決済み】makefileに'cd'コマンドを記述するには?
-
[解決済み】gcc makefileのエラー。"No rule to make target ..." (ターゲットにするルールがありません)
-
[解決済み] GNU MakeのCPPFLAGSとCXXFLAGSの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Makeエラー:セパレータがない
-
[解決済み] GNU make で "commands commence before first target" エラーが発生する。
-
[解決済み] 「複数のターゲットパターン」Makefile のエラー
-
[解決済み] Makefile のターゲットとしてグロブパターンを指定する
-
[解決済み] makefile で条件規則を使用する
-
[解決済み] makefileでLDFLAGSを使用する方法
-
[解決済み] makeファイルの@!の意味は?
-
[解決済み】Makefileの現在の相対ディレクトリを取得する方法は?
-
[解決済み】makefileでターゲットのリストを取得する方法とは?
-
[解決済み] GNU MakeのCPPFLAGSとCXXFLAGSの違いについて