라즈베리

초보자를 위한 라즈베리 파이에서 C 코드 편집 컴파일 및 실행

coding art 2018. 3. 7. 14:44
728x90
 
 
 

 

 

 

윈도우즈에서 비쥬얼 스튜디오를 사용하여 C 코드를 편집 실행하는 반면에 라즈베리 파이에서도 동일한 작업이 가능하다. 새로이 C 코드를 배우게 되면 간단한 프로그램에서부터 시작하여 편집기 사용법, 프로그램 저장, 컴파일링 실행 코드 변환 과정 및 최종 실행 과정을 알아둘 필요가 있다. 이 블로그는 라즈베리 파이에서 C 컴파일러 사용법에 관한 것이다.
윈도우즈에서의 명령 창에 해당하는 라즈베리 파이 터미널 창에서 nano  편집기를 사용하여 직접 C 프로그램을 편집하는 것은 대단히 비효율적이다. 라즈베리 파이에서도 Jesie 또는 Stretch 버전의 보조 프로그램에 Text Editor 가 있어 편리하게 C 코드를 편집할 수 있다.

 

 

 

 

 

 

이 편집기를 사용하여 화씨 기온을 섭씨 기온 값로 환산해 주는 아주 간단한 C 코드를 편집해 보자.


첫줄 시작 선에서 표준 입출력 라이브러리를 불러오도록 선언한다. 화씨 온도 기준으로 결빙 온도 섭씨로는 0 도이나 화씨로는 32도에 해당하는 값을 실수로 선언한다. 스케일 팩터 (5/5)를 실수로 선언한다.

void main()을 시작한다. void 라 함은 main  프로그램의 () 에 넘겨주어야 할 정보가 없는 경우를 뜻한다. 어떤 파라메터를 넘겨 주어야 한다면 더 이상 void 가 아니다.

main() 프로그램은 내부에 실행을 위한 명령 코드들이 위치하게 되는데 시작과 끝 부분에 반드시 중괄호 즉 { 로 시작하여 중괄호 } 로

 

끝맺어 주며 이 중괄호 기호 다음에는 줄 분리를 세미 콜론(;)이 필요 없다.

화씨(Fahrenheit) 온도와 섭씨(Celcius) 온도 값을 각각 실수(floating point number)형 변수로 정의 한다. 변수라 함은 코드 실행 중에 그 값이 변할 수도 있음에 유의하자.
printf() 명령을 사용하여 섭씨 온도를 터미널 창에서 입력하도록 창에 출력한다.
터미널 창에서 화씨 온도 값을 입력하면 C 코드가 scanf() 명령을 사용하여 읽어 들여서 다음과 같이 환산한다.

 

   섭씨 기온 = ( 화씨 기온 – 32 ) X (5./9.)
계산 결과 값을 터미널 창에 출력한다.

각 줄을 코딩 한 후 명령 별로 줄 구분을 위해 반드시 세미 콜론(;) 기호를 입력해야 한다. 하지만 인위적인 연습을 위해서 문법 에러를 유발할 수 있도록 printf(⚫⚫⚫temperature:  “)) 명령 다음의 세미 콜론을 빼 보기로 한다.

 


편집이 완료되었으면 C 코드 명을

 

부여하여 저장한다. 확장자 즉 .C까지 붙여서 저장한다.  따로 C  프로그램들을 저장하려면 /home/pi/ 밑에 디렉토리를 미리 만들어 줄 필요가 있다.

 

 

 

 

 

터미널 창을 열어서 cd 명령을 사용하여 celsius.c 코드가 위치한 디렉토리로 변경한다. 아래와 같이 컴파일 명령을 입력하여 실행한다.

       gcc celsius.c –o celsius  또는 gcc –o celsius celsius.c

 

이 gcc 컴파일 명령에서 celsius.c를 소스 파일이라고 하며 –o 는 컴파일하여  celsius 라는 오브젝트 파일을 생성시킨다는 뜻이다. 혹 순서를 바꾸어서 써도 무방하다.
gcc 명령을 실행하면 예상했던 바와 같이 에러 메시지가 든다.

 

즉 main에서 scaf 앞 줄에서 줄분리 세미 콜론 ; 이 있어야 하는데 없으므로 그 다음 줄인 scanf 까지 문제가 된다는 의미이다.
이 부분을 수정하여 다시 실행해 보자.

 

 

에러 없이 실행이 되었으면 chmod +x celsius 명령을 실행한다. 오브젝트 파일을 실행이 가능한 비트로 구성된 프로그램으로 바꾸어 준다.
마지막으로 ./celsius 명령을 실행하면 프로그램이 실행되어 창에 화씨 온도 값을 입력하라는 요구가 출력된다. 80도를 입력하였을 경우 환산하여 섭씨 26.7도 값을 출력해 준다.