확장자 규칙관련 질문 드립니다.

is1472의 이미지


SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)

보시다시피 와일드 카드와 대입참조 기법입니다.
.c로 끝나는것을 모두 가져와 ,o로 바꾼다는 이야기인데

제가 궁금한것은

1) 단순한 이름변경 .c => .o

2) gcc 수헹을 통한 변경

실행 시켜보니까 정의한 CFLAGS 를 가져와서 내부적으로 gcc를 실행시키는 것 같아서 2번이 맞는거 같은데
혹시해서 질문드립니다.
감사합니다.

is1472의 이미지

2번째 링크? 컴파일 과정은 무슨말인지 이해가 안되네요...

익명 사용자의 이미지

잘 알려진 파일 확장자에 대한 빌드 규칙이 암묵적으로 지정이 되어 있는 겁니다.

https://www.gnu.org/software/make/manual/html_node/Implicit-Rules.html#Implicit-Rules

여기서부터 천천히 읽어보세요.

익명 사용자의 이미지

친절한 설명 감사합니다