티스토리 뷰

Makefiile의 예

binary라는 파일이 lib.o와 prog.o로 링크해서 생성한다 할때,

binary: lib.o prog.o

gcc -o binary -g -Wall lib.o prog.o

lib.o: lib.c

gcc -o lib.o -g -Wall -c lib.c

prog.o: prog.c

gcc -o prog.o -g -Wall -c prog.c

clean:

rm *.o binary

 

binary라는 것이 여러번 사용되고 gcc -g -Wall이 여러번 사용될때, 매크로를 사용하면 된다.

CFLAGS라는 매크로를 사용하면 여러번 -g -Wall을 쓰지 않아도 편하게 컴파일가능하다.

     

%.o: %.c   (%는 현재 디렉토리에 존재하는 어떠한 c파일 o파일이 될수가 있다.)

 

맨 아래 clean은 파일을 만들 목적으로 사용한것은 아니다.

 

PHONY target

앞에 타겟이 있을때 타겟이 파일이 아닌경우를 말한다.

예] clean:

/bin/rm -f *.o core

all = 이 프로그램에 있는 모든 규칙들을 다 적용하라는 의미

install = 컴파일된 결과를 해당 디렉토리에 설치하라는 의미

clean = 컴파일 과정에 생성된 여러가지 파일들을 지우라는 의미

distclean = 중간에 생성되었던 파일들 까지도 지우라는 의미

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31