728x90
반응형
Makefile (메이크파일) 이란 무엇일까?
C언어로 소스코드를 작성하고 나서, 실행하기 위해 우리는 컴파일이라는 과정을 거친다.
컴파일러를 호출하여 대상 소스파일을 넘겨주고, 실행파일을 생성한다.
gcc -c main.c // main.o 라는 object file (목적파일) 생성
gcc main.c // 자동으로 a.out 이라는 실행파일이 생성됨 (기본값)
gcc main.c -o b.out // b.out 이라는 이름의 실행파일 생성
그런데, 이렇게 일일이 파일이름을 나열하여 컴파일하는 과정은 소스파일이 적을 때는 가능하겠지만, 규모가 큰 프로젝트 같은 경우에는 굉장히 비효율적인 작업이 된다.
SRCS=ft_itoa.c ft_split.c ft_strtrim.c ft_calloc.c ft_strdup.c ft_memcpy.c ft_memcmp.c \
ft_memchr.c ft_memmove.c ft_bzero.c ft_memset.c ft_strjoin.c ft_strnstr.c ft_isascii.c \
ft_strchr.c ft_strncmp.c ft_toupper.c ft_atoi.c ft_isdigit.c ft_strlcat.c ft_isalnum.c \
ft_isprint.c ft_strlcpy.c ft_strrchr.c ft_isalpha.c ft_strlen.c ft_tolower.c ft_substr.c \
ft_strmapi.c ft_striteri.c ft_putchar_fd.c ft_putstr_fd.c ft_putendl_fd.c ft_putnbr_fd.c \
ft_lstnew_bonus.c ft_lstadd_front_bonus.c ft_lstsize_bonus.c ft_lstlast_bonus.c \
ft_lstadd_back_bonus.c ft_lstdelone_bonus.c ft_lstclear_bonus.c ft_lstiter_bonus.c \
ft_lstmap_bonus.c
이런 식으로 컴파일해야 하는 소스 파일의 수만 몇십 개가 되고, 거기에 헤더파일이나 여러 컴파일 옵션이 붙을 수 있다.
이런 경우를 위해 make라는 명령어가 존재한다.
make - GNU make utility to maintain groups of programs //man make
여러 프로그램 그룹을 관리하기 위한 유틸리티라고 하는데, 쉽게 말해 프로그램 컴파일 등을 한 번에 할 수 있게 하는 명령어다.
단 make는 특이하게, makefile이라는 파일을 필요로 하는데, 이 makefile이 바로 컴파일해야 하는 대상들과 정보가 적혀있는 일종의 레시피라고 할 수 있다.
즉, make 명령어를 실행하면, 자동으로 Makefile이 존재하는지 찾고, 내용을 읽어서 레시피대로 컴파일을 수행한다.
728x90
반응형
'CS 지식 > C, C++' 카테고리의 다른 글
[C++] 바킹독의 실전 알고리즘 1일차 (2) | 2023.03.01 |
---|---|
[C] open 함수 (0) | 2023.01.31 |
[C] 널 포인터 (Null Pointer) (0) | 2023.01.26 |
[C] strdup 함수 (0) | 2023.01.25 |
[C] write 함수 (0) | 2023.01.20 |