PUTTY 이용하여 리눅스 Make, Makefile 생성하기
- Make를 쓰는 이유
- 각 파일에 대한 반복적 명령의 자동화로 인한 시간 절약
- 프로그램의 종속 구조를 빠르게 파악 할 수 있으며 관리가 용이
- 단순 반복 작업 및 재작성을 최소화
- Makefile의 구성
- 목적파일(Target) : 명령어가 수행되어 나온 결과를 저장할 파일
- 의존성(Dependency) : 목적파일을 만들기 위해 필요한 재료
- 명령어(Command) : 실행 되어야 할 명령어들
- 매크로(macro) : 코드를 단순화 시키기 위한 방법
- Makefile 만드는 이유
- 하나의 실행파일을 생성하는데 필요한 c파일이 여러 개인 경우 그만큼의 명령어가 필요하다. 이러한 상황을 해결해 주기 위해 makefile
을 사용한다.
문제 13) 문제 12와 동일한 mainAlg 실파일이 만들어 질 수 있도록 make 유틸리티를 실행할 수 있는 Makefile 파일의 내용을 쓰세요.
1. Makefile을 만들기 위해 printMain.c 와 printmsg.c 파일을 만든다.
1) ‘printMain’와 ‘printmsg’ 파일 2개를 생성한다.
위의 사진은 ls의 명령어를 통해 파일이 생성되었는지 확인하는 장면이다.
(1) 각 object 파일을 생성한다.
gcc -c -o printMain.o printMain.c
gcc -c -o printmsg.o printmsg.c
이때,
-c 옵션 : object 파일을 생성
-o 옵션 : 생성 될 파일 이름을 지정
각 object 파일을 묶어 실행파일 생성한다.
gcc -o mainAlg printMain.c printmsg.c
실행 후 출력한다.
./mainAlg
2. Makefile을 생성
1) Makefile 생성 방법
2) 생성
mainAlg : printMain.o printmsg.o
gcc -o mainAlg printMain.o printmsg.o
printMain.o : printMain.c
gcc -c -o printMain.o printMain.c
printmsg.o : printmsg.c
gcc -c -o printmsg.o printmsg.c
clean :
rm *.o mainAlg
3. 실행화면
느낀점 : Make를 사용하면 어떤 장점이 있는지 알지 못하고 무작정 외우기만 했다. 여러 번 힘들게 명령어를 작성하여 실행하는 과정을 make를 사용하면 간편하게 처리할 수 있다는 장점이 있다. 이러한 장점을 적용할 수 있었던 계기가 됬다.