[42seoul] libft

werthers·2023년 3월 20일
0

42서울

목록 보기
2/7
post-thumbnail

나만의 라이브러리 만들기

내가 생각하는 과제의 목적

42cursus 과정을 하면서 필요한 함수들에 대해 미리 구현하고 라이브러리화 하여 makefile과 라이브러리에 대한 이해도를 늘리는 것이 목적이라고 생각하기 때문에 각각 함수의 구현보다 목적을 위주로 기록하고자 한다.

libft.h

.h 파일은 하나를 가지는 것을 기준으로 한다.
또한 bonus 파트 이외의 본인이 추가하고 싶은 파일이 있다면 그 때 _bonus.c, _bonus.h 파일을 생성하고 Bonus 파트는 _bonus.H를 붙이지 않는다.

Makefile

NAME 변수는 흔히들 사용하는 TARGET, 즉 마지막에 만들고자 하는 결과물의 이름을 말한다. 본 과제에서는 libft.a

SRCS 변수는 mandatory part의 .c 파일들을 모아두는 역할을 하는 변수로 사용했다.
물론 NAME처럼 변수명이 강제되지 않는다.

SRCS_B 변수는 bonus part의 .c 파일들을 모아두는 역할을 하는 변수로 사용했다.

OBJS 변수는 SRCS 변수의 값들을 .o로 변경시킨 값을 가지도록 했다. (단순히 이름만 변경)

OBJS_B 변수는 bonus part의 .o 파일들을 모아두는 역할을 하는 변수로 사용했다.

이 외의 변수들은 각각 구현하는 사람의 성향에 따라 만들 수도 있고 없는 부분이라고 생각해서 기록하지 않는다.

명령 (make)

allmake를 사용했을 때 최종적인 결과에 대한 실행이 일어나도록 설계하면 된다.

cleanmake 과정에서 생성된 .o 파일에 대해 삭제하는 기능을 구현하면 된다.

fcleanmake 과정에서 생성된 모든 파일에 대해 삭제하는 기능을 구현하면 된다.

re 는 재차 fclean 이후 make를 했다고 생각하면 된다. (make와 관련된 모든 것을 삭제하고 다시 make)

bonus는 bonus part에 대한 make를 수행하는 기능을 구현하면 된다.

주의사항

restrict 키워드 norm 주의
mem 관련 1바이트씩 주소를 접근해야할 경우 unsigned char* 명시적 캐스팅
tester를 너무 믿지 말 것..
makefile relink 주의
ifndef를 통해 변수를 사용해 all, bonus의 relink를 막았다.
아카이브 사용법 알아두기
cc = cc!

profile
Hello World !

0개의 댓글