ranlib 명령은 지정한 아카이브 파일명의 인덱스를 생성하여 랜덤 라이브러리로 변환한다. 이는 ar -s 명령과 동일하다.
TARGET = 생성할 파일 명
CC = 컴파일러 (gcc)
CFLAGS = -Wall -Wextra -Werror
DIR = ./srcs/
INC = -I/includes/
//-I : 전처리 과정에서 헤더 파일을 탐색하는 기본 디렉터리를 추가할때
SRC = src file명 나열
SRCS = ${addprefix ${DIR}, ${SRC}}
//addprefix 전치사를 붙여줌
//또는 addsuffix를 이용하여 file명에 .c 또는 .o를 붙여줄 수도 있음
//ex) SRCS = $(addprefix $(SRCS_DIR), $(addsuffix .c, $(FILES)))
OBJS = ${SRCS:.c=.o}
RM = rm -f
라이브러리를 만들려면 ar 유틸리티가 필요
LIBS = ranlib <- 링크할 때 필요한 라이브러리를 추가한다.
// 기본적으로 생성하는 규칙들
all: ${TARGET}
.c.o:
${CC} ${CFLAGS} -c ${INCS} $< -o ${<:.c=.o}
${TARGET}: ${OBJS}
ar rc $@ ${OBJS}
${LIB} $@
clean:
${RM} ${OBJS}
fclean: clean
${RM} ${TARGET}
re: fclean all
http://egloos.zum.com/studyfoss/v/5049029
가짜 목적물 .PHONY 설정하기
생성한 라이브러리를 사용하고 싶을때는
컴파일 할 때!!
-L(아카이브 파일이 있는 디렉토리 주소)
-l아카이브명
이때 -lex 의 경우
libex.a를 의미한다!