make사용법
분할된 파일들을 컴파일 하려면 여러 번 명령을 쳐야 하나 Makefile을 이용하면 쉽고 한 번에 컴파일이 가능하다.
예를 들어 4월20일 보고서에 있는 main.c와 view_hello.c를 컴파일하려면,
# gcc –c main.c
# gcc –c view_hello.c
를 입력하여 main.o와 view_hello.o를 먼저 만들고 다음에,
# gcc –o main main.o view_hello.o
를 입력하여 두 개의 오브젝트파일을 합쳐야 한다.
이렇게 하면 불편하고 파일이 많을 경우 실수할 수도 있으니 Makefile을 사용하여 편하게 해보자.
# vi Makefile
을 입력하여 Makefile을 만들고 다음과 같은 양식으로 입력한다.
object매크로명 = object매크로 내용(오브젝트1, 2, 3…) excute매크로명 = 실행파일명 실행파일명 : $(object매크로명) <tab> gcc –o $(excute매크로명) $(매크로명) 오브젝트1 : 소스1.c <tab> gcc –c 소스1.c 오브젝트2 : 소스2.c <tab> gcc –c 소스2.c 오브젝트3 : 소스3.c <tab> gcc –c 소스3.c ….(계속가능) clean: <tab> rm $(object매크로명) rm $(excute매크로명) |
매크로를 사용하는 이유는 내용이 길어질 경우와 중복사용이 많은 경우 매우 편리하기 때문이다.
마지막 clean 라벨은 make clean 명령을 내렸을 시에만 동작하는 명령들로 소스파일과 Makefile을 제외한 모든 파일을 지우게 하는 것이 좋겠다. 상기의 양식대로 4월20일자 main.c와 view_hello.c를 자동 컴파일하는 Makefile은 다음과 같다.
main.o와 view_hello.o파일이 생성된 후 main.c와 view_hello.c가 갱신되지 않은 상태에서 make명령을 실행하면,
스크린샷 6행에서와 같이 ‘main’은 이미 갱신되었다고 나온다.
이 경우 컴파일을 하지 않는다.
7~9행은 main.c파일을 수정한 뒤에 컴파일이 되는 모습을 보여준다.
다시 make를 입력하면 11행과 같이 ‘main’은 이미 갱신되었다고 나온다.
15행에서 make clean을 입력하면 오브젝트와 실행파일이 모두 지워지게 되는데,
그 후 make를 입력하면 목적파일과 실행파일이 없으니 컴파일을 한다.
'내장형하드웨어' 카테고리의 다른 글
포스트에 C Code를 웹브라우저에서 보기 좋게 삽입하기 (0) | 2011.06.28 |
---|