Saya bermain-main dengan makefiles dan saya menemukan % .o atau % .c . Dari apa yang saya mengerti, itu menentukan semua file c atau o . Tapi mengapa ini berhasil:
%.o: %.c
$(CC) -c $^ -o $@
dan ini tidak berhasil
SOURCE := $(wildcard *.c)
$(SOURCE:.c=.o): SOURCE
$(CC) -c $^ -o $@
Kedua ekspresi menentukan semua file. jadi apa % .o: simbol dalam file make tidak?
Konstruk:
adalah aturan pola , yang merupakan jenis aturan implisit. Ini menentukan satu target dan satu ketergantungan, dan menyebabkan satu doa
$(CC)
untuk setiap target. Sementara ini:adalah aturan standar tetapi memiliki (mungkin) banyak target dan banyak dependensi. Namun untuk semua itu, itu hanya akan memohon
$(CC)
sekali.sumber