본문 바로가기

Study/C language

[C Language] 01. Compiler & editer

Compiler란?




혹시, 이런 이야기 들어 보신 적 있으신가요?


"컴퓨터는 0과 1로 이루어져 있다."


아마, 들어 보신 적 있으실걸로 생각됩니다.


그렇다면, 다시 물어보겠습니다.


지금 읽고 있는 이 글이, 0과 1로 보이시나요?




  Compiler(컴파일러)는 사람과 컴퓨터를 이어주는 중간자, 연결 고리의 역할을 하는 program.

사람이 쓰는 언어를 컴퓨터가 이해할수 있는 "정보"로 변환시키는 프로그램입니다. 


 다시말해서 프로그램을 만들기 위한 프로그램이라고 할 수 있겠지요. 아리송할수도 있습니다. 

프로그램을 만들기 위해 C언어를 공부하는데 시작부터 프로그램에 대해서 배운다니..


예를 들어 설명을 해 드리겠습니다.







  그림을 보면 사람은 A가 무엇을 의미하는지 바로 알아 봅니다. 하지만 1000001은 무엇을 의미하는 지 바로 알 수 없습니다. 반대로, 컴퓨터는 A는 바로 알아 볼 수 없습니다. 허나 100001은 바로 알수 있지요. 이 차이를 매꾸어 주는 것이 Compiler(컴파일러)입니다.  A를 컴퓨터가 이해할 수 있게 100001로 바꾸어 주는 프로그램, 앞으로 우리가 C언어를 배우는 내내 신세져야하는 프로그램입니다.






그러면, Editor란?




  C언어는 어찌보면 참으로 공부하기 편리한 언어입니다. 컴파일러만 있다면, Window에 기본으로 내장 되어 있는 "메모장"으로도 연습이 가능하고, 실제로 사용가능한 프로그램을 만들수도 있습니다. 허나, 사람이란 편리한 것을 추구 하는 동물로.. 불편함을 견디기 힘들어 합니다. 메모장에서도 가능하나, 별도의 editor(문서편집기)를 쓰는 것 역시 이와 같은 이유입니다.


  별도의 editor를 사용하면 좋은점이 몇가지 있습니다. 오타를 찾기 쉽게 표시해주고, 몇번째 줄을 쓰고 있는 지 표시를 해주는 기능, 자신이 쓰려는 것을 좀 더 쉽게 입력하게 도와주는 자동완성 기능 등등


 물론 좀 더 편리하게 해주는 프로그램도 있습니다. 들어보셨을지 모르겠지만 visual studio등의 IDE(통합개발환경) 프로그램이죠. 하지만, 이와같은 프로그램은 대부분 대단위의 그룹환경에 맞추어져, 단순히 C언어를 공부하는 입장에는 맞지 않습니다. 그룹단위의 작업을 위한 편리한 기능 덕분에 오히려 불편함이 생기는 것이죠. 


나중에 현직에서 만날 보게 될 프로그램이니, 너무 일찍부터 탐내지 않고 부담 없이, 헝그리하게 가도록 하겠습니다.





그래서 어떤 프로그램을 쓰느냐!?




notepad++gcc를 사용하려 합니다.


 notepad++가 editor. 그리고 gcc가 compiler의 이름입니다.

국내에서 만들어진 editplus라는 프로그램도 있지만, 이는 셰어웨어이기 때문에, 프리웨어인 notepad++로 대체해서 사용하려합니다. 부족하지만 한글버젼도 존재하기 때문에, 처음 설정만 빼놓고는 크게 불편함은 없으리라 사료됩니다.마찬가지로 compiler인 gcc 역시 프리웨어로 돈걱정 없이, 법 걱정없이 C언어의 즐거움을 느낄수 있는 선택이라 생각합니다. 



DownLoad



GCC 다운받기 : http://www.mingw.org/



주소로 들어가 빨간 테두리 쳐진 "download/installer"를 클릭

 


  해당 창으로 이동 후 잠시 후면 자동으로 다운로드가 시작 됩니다. 제가 compiler의 이름을 GCC라 말했지만, 실제로 받는 프로그램의 이름은 MinGw로, 이는 윈도우 용으로 개발된 GCC 컴파일러의 이름입니다. 여기에 대해서는 나중에 추가적으로 설명 할 기회가 있었으면 좋겠네요. 


notepad++ 다운받기 : http://notepad-plus-plus.org/




테두리 쳐진 Download를 클릭. 이동된 창에서 한번 더 Download 클릭!



notepad라고 하면, 딱!하고 감이 안오실지 몰라 설명을 드리자면 notepad = 메모장입니다. 뒤에 ++은 나중에 C언어를 배우다보시면 알겠지만, 지금은 그냥 (기능이) 더 추가된, 증가된 이라고 받아 들이시면 되겠습니다.


MinGw (gcc) Install




다운 받을 파일을 실행, 어려울것 없으니 install.




별다른 체크 해제 필요 없이 continue





약간의 설치 시간후 이런 창이 뜨는데요.

여기서 컴파일러의 언어를 추가 할 수 있습니다.

Mingw32-base가 C언어. 추후 사용할 예정으로 C++을 추가로 설치 했습니다.




이와 같은 창이 뜨고 약간의 시간이 지난 후 설치가 완료 됩니다.


PATH 설정



  gcc는 유닉스 기반의 컴파일러이기 때문에, GUI를 지원하지 않습니다. 따라서, 콘솔.윈도우에서는 도스를 사용해야하는데, 어느 위치에서던 명령어를 사용하기 위해서는 GCC의 경로. 즉, PATH를 설정해 주어야합니다. 지금부터 PATH를 설정하도록 하겠습니다.


Window XP이하의 os를 쓰시는 분들을 위한 별도의 설명은 하지 않겠습니다.

이미 지원 중단 되었으니 말이죠. VISTA는...제가 안쓰기 때문에 ^ ^;

지극히 이기적이지만, 7과 8의 스크린샷을 통한 설명만 하도록 하겠습니다.




내컴퓨터 - 오른쪽 마우스 클릭 - 속성



왼쪽 사이드바의 "고급 시스템 설정" 클릭




하단의 "환경변수" 클릭



Path를 더블 클릭




맨 뒤에 ;c:\MinGW\bin;을 입력

(세미콜론(;)이 맨뒤에 한번 찍혀있다면, c:\앞의 세미콜론은 찍을 필요가 없습니다,)


-마지막으로 path가 설정되었는지 확인




Winodw key + R 을 눌러 실행창을 키고, cmd 입력




gcc -v를 입력해서 위와 같이 나오면, path가 제대로 지정된것 입니다.



Notepad++ Install & Plug-in Download.



  이제 gcc 설정을 완료했으니, Notepad++ 의 설치를 시작해볼까요? notepad++의 경우 처음 언어 선택에서 korean을 선택. 한글의 위대함을 음미하시면서 설치 해주시면 됩니다. 지금부터 설명 할 것은 설치 이후. 편리한 코딩 라이프를 위해 MinGw와 notepad++을 연동 하는 방법입니다.



설치를 완료하셨다면, 플러그인 - plugin manager - show plugin manager를 클릭




NppExec를 찾아서 체크, 우측 하단에 install을 눌러줍니다.

설치에는 약간의 시간이 걸립니다.



플러그인 - NppExec으로 이동해서 위와 같이 설정을 변경합니다.

체크해제 : Console Cmmands History

체크 : save all files on execute, Follow $(CURRENT_DIRCTORY)





그 후 기본화면에서 F6을 누르거나, 플러그인 - NppExec - Execute 를 눌러줍니다.



열린 Execute창에 위와 같이

gcc -o "$(CURRENT_DIRECTORY)\$(NAME_PART)" "$(FULL_CURRENT_PATH)"

로 입력하고 SAVE 버튼을 눌러 이름을 지정해 줍니다.

이건 compile을 하기 위한 것이기 때문에 C_compile이라 저장했습니다.

다음은 실행을 위한 코드를 입력하기 위해. c_compile이 있는 선택메뉴에서 

<temporary script>을 눌러 빈페이지로 만들고 



"$(CURRENT_DIRECTORY)\$(NAME_PART)"  를 입력. 

SAVE를 눌러 이름을 지정하여 저장 합니다.


이것은 실행을 위한 명령이기 때문에 c_run으로 저장했습니다.





저장을 완료 한 후 이번에는

 플러그인 - NppExec - Advanced Option을 클릭



Place to the macros submenu 에 체크


위의 스크린샷과 같이 Associated script메뉴가 활성화 됩니다.

전에 설정한 C_compile을 선택. Add/Modify를 클릭.



남은 C_run까지 동일하게 올립니다.


*c_compile설정 후 C_run을 선택하여도, item name의 글은 변경되지 않으니. 

수동으로 다른이름으로 변경해 주셔야 단축키 설정을 다르게 할 수 있습니다.



단축키 설정




메크로 - 단축키 변경 / 메크로 삭제 메뉴를 클릭




plugin commands 탭으로 이동하여 스크롤바를 내려 아까 설정한

C_compile과 C_run을 찾습니다.



C_run과 C_compile을 찾아서 더블클릭.  shortcut 메뉴에서 원하는 단축키로 설정합니다.

*단 단일 단축키는 대부분 Notepad에서 사용하고 있으니. 펑션키와 같이 조합할 것을 추천 드리며. 키가 중복 될 경우에도 별다른 알림이 뜨지 않으니. 확인 후 설정하시 길 바랍니다.


테스트


  이로써 editor와 compiler의 설정이 끝났습니다. 이제, 잘 설치가 되었는지 한번 테스트를 해볼까요? 테스트 할 예제는. 전세계 어딜가나 어떤 언어로 쓰여있던가 항상 예제로 사용되는 만국 공통 예제입니다.


notepad++를 실행하여, 아래와 같이 입력해주세요.


00:        #include<stdio.h>

01:

02:        void main(){

03:                    printf("hellow  world\n");

04:        }



입력을 완료하셨으면, 설정한 C_compile의 단축키를 눌러줍니다. 하단의 console 창에 글이 뜬후 이상이 없을 경우  C_run에 해당하는 단축키를 눌러 봅시다.





이로써 첫 프로그램이 완성되었습니다. 다음 글부터 본격적인 C에 대해 다루겠습니다.