위와 같이 여러개의 소스 파일로 구성된 프로그램이 있을때, 한개의 소스파일을 수정하면 모든 파일을 다시 컴파일하고 링크해야 수정이 반영된 새 실행 파일이 생성된다. 즉, 파일을 하나만 수정해도 모든 파일을 다시 컴파일 해야한다😭
Make는 수정된 소스 파일만 자동으로 알아내어 컴파일하고, 수정하지 않은 파일은 기존 오브젝트 파일을 그대로 이용하게 해주는 유틸리티 툴이다.
Makefile 이란?
target, dependency, command의 세 개로 이루어진 기본적인 규칙들이 계속적으로 나열되어 있는 텍스트 파일
주의사항
👉 의존 관계의 각 요소를 구분하는 데에 콤마(,)를 사용하지 않고, 공백( )을 사용함❗️
👉 명령을 입력하기 전에 반드시 항상 tab 구분자를 입력해야 함 (스페이스는 안됨)
👉 항목의 순서는 중요하지 않음
hello.c 파일을 변경 후에, 다시 make 실행
make clean
gcc 명령어를 실행할 때 -o 옵션은 딱 한번밖에 사용할 수 없다.
.c.o: #%.o : %.c와 동일
이 문법을 사용하면 makefile에 정의되어 있는 *.o, *.c 파일 하나하나에 액션을 실행시킬 수 있다. 그러면 한 object파일을 만들 때 -o옵션을 한번만 쓸 수 있고 원하는 결과가 나온다.
ar
create and maintain library archives
ar(archive) 은 묶음파일을 만들고 조작하고 추출한다
"rcs" seems to be the most popular option to pass to ar
rcs : option
r - 오브젝트 추가
c - 아카이브 생성
s - 인덱스 생성
'Programming Language > C' 카테고리의 다른 글
[C] open(), close() (0) | 2020.12.05 |
---|---|
[C] 파일 (0) | 2020.12.05 |
[C] 오버플로우 언더플로우 (0) | 2020.12.03 |
[C] main함수 인자 (0) | 2020.11.28 |
[C] strcmp() (0) | 2020.11.26 |