Programming Language/C

[C] Make

lingk 2020. 12. 4. 23:07

위와 같이 여러개의 소스 파일로 구성된 프로그램이 있을때, 한개의 소스파일을 수정하면 모든 파일을 다시 컴파일하고 링크해야 수정이 반영된 새 실행 파일이 생성된다. 즉, 파일을 하나만 수정해도 모든 파일을 다시 컴파일 해야한다😭

Make는 수정된 소스 파일만 자동으로 알아내어 컴파일하고, 수정하지 않은 파일은 기존 오브젝트 파일을 그대로 이용하게 해주는 유틸리티 툴이다.

 

Makefile 이란?

target, dependency, command의 세 개로 이루어진 기본적인 규칙들이 계속적으로 나열되어 있는 텍스트 파일

 

주의사항

👉 의존 관계의 각 요소를 구분하는 데에 콤마(,)를 사용하지 않고, 공백( )을 사용함❗️

👉 명령을 입력하기 전에 반드시 항상 tab 구분자를 입력해야 함 (스페이스는 안됨)

👉 항목의 순서는 중요하지 않음

 

hello.c 파일을 변경 후에, 다시 make 실행

변경된 부분만 다시 컴파일

 

make clean

 

Makefile에 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