メイクファイルにおけるワイルドカードの意味は何ですか? 質問する

メイクファイルにおけるワイルドカードの意味は何ですか? 質問する

makefile チュートリアルで次の行を見つけましたが、太字の行に問題があります。

1行で書くと

program_C_SRCS:=$(*.c)

動作しません。ここでのワイルドカード ワードが何であるか教えてください。このワードは makefile にのみ固有のものですか?

チュートリアルでは、2 行目がテスト置換を実行すると書かれています。このテキスト置換について何か教えていただけますか?

ファイル作成は初心者なので、質問が基本的な内容である場合はご容赦ください。

チュートリアルのリンク

CC:=g++
program_NAME:=myprogram
**program_C_SRCS:=$(wildcard *.c)**  # 1 line 
program_CXX_SRCS:=$(wildcard *.cc)
**program_C_OBJ:=$(program_C_SRCS:.c=.o)** # 2 line
program_CXX_OBJ:=$(program_CXX_SRCS:.c=.o)
program_OBJ:= $(program_C_OBJ) $(program_CXX_OBJ)

ベストアンサー1

2 つのソース ファイルがあるとします。foo.cおよびbar.c

program_C_SRCS:=$(wildcard *.c) # 1 line

関数wildcardは Make 構文です。変数にはprogram_C_SRCS値が設定されますfoo.c bar.c(順序は異なる場合があります)。

program_C_OBJ:=$(program_C_SRCS:.c=.o) # 2 line

これは代替参照テキストを変換し、ある部分文字列を別の部分文字列に置き換えます。変数のprogram_C_OBJ値は になりますfoo.o bar.o

おすすめ記事