[ft_printf] GCC 외부 정적 라이브러리를 사용해 컴파일하기

업데이트:

ft_printf 과제를 하면서 필요한 다양한 함수들(직접 일일히 구현한 C언어 라이브러리가 들어있는 libft 정적 라이브러리 파일을 함께 컴파일해야 한다고 해서, 급하게 공부한 내용을 정리하였다.

컴파일 옵션 : 외부 정적 라이브러리를 이용한 컴파일

아직 개념을 완전히 이해하지 못해서, 표현이 다소 서툽니다. 이해 부탁드리며 댓글 등으로 많은 지적 부탁드립니다.

ft_printf 과제의 경우, Makefile을 이용해 정적 라이브러리 파일을 만들고 라이브러리 파일과 함께 main.c 파일을 컴파일해야 한다.

사용하는 GCC 플래그 목록

아래와 같이 사용한다.

gcc -L. -lftprintf main.c 

-L(대문자) : 외부 라이브러리를 사용한다는 의미, 라이브러리의 위치를 정해주는 옵션

-L 뒤에 붙은 . : 사용할 외부 라이브러리의 경로 (붙여서 쓴다)

-l(소문자) : 링크할 라이브러리 파일을 지정한다. 라이브러리 파일명에서 앞에 있는 lib를 제외하고, 확장자 .a 또한 제외하고 인식한다. 예를 들어-lftprintf 로 사용할 외부 라이브러리의 파일명을 지정할 수 있는데, 이렇게 하면 libftprintf.a 파일을 사용한다. 앞서 말한 바와 같이 .a와 파일명 앞의 lib를 생략하기 때문에, lib42.a 파일을 사용하려면 -l42 라고만 입력하면 된다. 처음에는 이게 왜 그런지 잘 이해하지 못했는데 그냥 POSIX 시스템에서는 라이브러리 파일명에 앞에 lib을 붙이기로 일종의 약속을 해서 그냥 그런거라고 한다.)

[과제를 수행하며 계속 작성할 예정입니다.]

댓글을 남겨주세요