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
。