기본형태의 Makefile

bowling : bowling.o procBoard.o

cc -o bowling bowling.o procBoard.o


bowling.o : bowling.c

cc -c bowling.c

procBoard.o : procBoard.c

cc -c procBoard.c





CFLAGS = -std=c99                //환경변수  for(int i=0; i<10;i++) 를했을때 생기는 에러 없애는법


bowling : bowling.o procBoard.o

cc -o bowling bowling.o procBoard.o




makefile에 메크로 쓰기


CC = gcc

TARGET = bowling

OBJS = bowling.o procBoard.o


$(TARGET) : $(OBJS)

$(cc) -o $@ $^


$@                    매크로로 만들어질 타깃 파일명

$^                    모든 의존 파일을 스페이스로 구분한 목록(중복 제외)

$+                    모든 의존 파일을 스페이스로 구분한 목록(중복 포함)

$?                    타깃보다 새로운 의존 파일만 스페이스로 구분한 목록

$<                    의존 파일 중 첫 번째 기술된 파일명(확장자 규칙에만 사용)

$*                    현재 타깃 파일명에서 확장자를 뺀 이름(확장자 규칙에만 사용)



CC = gcc

TARGET = bowling

OBJS = bowling.o procBoard.o


$(TARGET) : $(OBJS)

$(cc) -o $@ $^


clean :

rm -f *.o $(TARGET)


clean 에 해당하는 오브젝트 파일이랑 실행파일이 지워진다.


Makefile 의 장점은 소스의 길이가 길어졌을때 매크로 이름만 변경해 쉽게 수정할수 있다.





참고하면 좋은 페이지

http://developinghappiness.com/?p=28












Posted by 차희빈

차희빈

달력