Makefile

오젼·2022년 6월 4일
0

기본 문법

타겟절 : 의존성
      (tab)명령어
  • https://www.youtube.com/watch?v=jnJL6ppn26Q&t=1137s

  • https://modoocode.com/311

  • all : all 옵션이 없는 경우 제일 첫 번째 Target만 실행 시키고 종료한다.

    • Makefile이 기능적으로 어떤 것을 최종적으로 만드려고 하는 것인지를 모른다. 때문에 이를 명시적으로 적어주기 위해 all이 필요하다.
    • 그래야만 최종적으로 만들 타겟이 어느 줄에 있든지 그 줄로 가서 이 타겟을 만들기 위해선 이것, 이것, 이것이 필요하네 하고 필요한 파일들을 만든다.
    CC = gcc
  • "" = "" : 변수를 선언하는 방법이다. 반복적으로 사용하는 부분을 변수 처리를 해주면 간단하게 줄여 사용할 수 있다. 변수를 사용할 때는 $를 붙여서 사용해준다.

    ${TARGET} : ${OBJS}
      ${CC} -c -o $@ $<
  • cc -o 출력파일명 필요한파일명 이었는데 이렇게 하면 바로 실행파일을 만들게 되니까 c옵션을 줘서 cc -c -o 출력파일명 필요한 파일명 으로 오브젝트 파일을 빌드해줘야 한다.

  • $@ : 현재 타겟의 이름

  • $^ : 의존 파일 목록

    .c.o :
      ${CC} -c -o $@ $<
    --> %.o : %.c
  • .c.o : .c파일들을 .o로 모두 바꿔주겠다. --> 요즘은 %.c %.o 이런식의 표현으로 쓴다고 한다.

  • https://stackoverflow.com/questions/9233447/what-is-the-makefile-target-c-o-for

  • $< : 의존 파일 목록의 첫 번째 파일에 대응된다. (하나만 대응 되게 되는 것임)

공부용 메이크파일

:= = += 차이

dir 키워드

0개의 댓글