〖Libft〗 ➄

hyeonjin-dot·2021년 1월 26일
1

42seoul

목록 보기
6/7
post-thumbnail

makefile 생성하기

  • 링크 규칙

    타겟 : 의존 관계

    bash 명령어

    → 의존 관계가 타겟의 재료이며, bash 명령어를 통해 타겟을 생성

  • 매크로

    상수 선언과 동일한 개념이라고 생각

    CC = gcc 의 방식으로 선언해줌

    이 선언된 매크로를 사용하기 위해

    ${CC} $(CC) → 둘은 동일

    방법으로 언급해줌.

  • .PHONY

    생성되지 않아도 상관 없는 명령어들 집합

  • $< 입력파일

  • $@ 출력파일

  • ar : 정적 아카이브 다루기

    +rcs : .a를 만들기 위한 명령어

  • .a 🆚 .out

    .a : 정적 라이브러리 파일로 object 파일들을 모아놓은 것

    .out : 컴파일 된 실행 파일 <a.out>은 어셈블러 출력의 약자

❓무엇이 필요할지 생각해보자 😎

  • [x] ${NAME}

    gcc 어쩌구.c

    gcc -o 타겟 어쩌구.o >> ar ras 타겟 어쩌구.o (라이브러리 생성)

    ./어쩌구 >> 사용하지 않음

😒 문제

⚠️ linker command failed with exit code 1 (use -v to see invocation)

→ 파일이 중복 생성되어서 발생

${OBJS} = ${SRCS:.c=.o}

.c.o :
${CC} ${CFLAGS} -c $< -o ${<:.c=.o}

이 두개가 중복된 역할을 하는 것 같음 둘다 .c를 .o로 변경해주는 것 아닌지

${OBJS} : ${SRCS}

${CC} ${CFLAGS} ${SRCS}

${OBJS_B} : ${SRCS_B}

${CC} ${CFLAGS} ${SRCS_B}

이 코드도 같은 역할인가? → 맞는 것 같음 해결 됨

✅ 참고한 링크

Makefile 문법 요약

gcc와 make 강좌: make 강좌

profile
응애 나 애기 블로거

0개의 댓글