• 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를 사용하면 간편하게 처리할 수 있다는 장점이 있다. 이러한 장점을 적용할 수 있었던 계기가 됬다.

Putty를 이용하여 ‘temp.txt’ 생성과, txt안에 문장을 출력까지 하고자 한다.

 

먼저, putty에 원격으로 연결하여 로그인한다. 이후 vi 명령어를 통해 test0404.c파일을 연다.

 


Char pathname[] = “temp.txt”;

If((filedes = open(pathname, O_CREAT | O_RDWR, 0644)) == -1)

위의 코드는 ‘temp.txt’라는 파일을 생성하는 코드이다. 

아래 if문은 예외처리하기 위함이다.

Content는 txt파일에 넣을 내용이다.





사진은 컴파일 한 후,  ls 명령어를 사용하여 txt파일이 생성되었는지 확인한 것이다.





‘temp.txt’를 열어보면 위에 putty를 통해 c파일에 작성한 내용을 확인할 수 있다.  

리눅스 폴더에서 또한 ‘temp.txt’가 생성되었는지 확인할 수 있다.  







느낀점 : 처음 ‘temp.txt’를 생성 후 위의 c파일을 컴파일 하였더니, 계속해서 열 수 없다는 오류 메시지가 출력되었다. 이에 명령어 rm을 사용하여 txt파일을 삭제한 후에 컴파일 했다. 비교적 지난번 처음 putty를 사용했을 때보다 쉽고 편했다. 그러나 리눅스에서 c파일을 컴파일하는 과정에서 오류를 찾는 일은 아직까지 익숙하지 않다.

+ Recent posts