본문 바로가기

Programming/IoT_Embedded

라즈베리파이 개발환경 꾸미기 #8. Eclipse + C/C++로 라즈베리파이 개발하기

이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다.

  1. 라즈비안 OS 설치하기
  2. 키보드 모니터 없이 라즈베리파이 Login 하기
  3. Wifi 설정 / 기본 설정하기
  4. 파이썬 + Eclipse로 라즈베리파이 개발하기
  5. 라즈베리파이에 NodeJs 설치하기
  6. NodeJs + Eclipse로 라즈베리파이 개발하기
  7. C/C++ Cross Compiler(Tool Chain) 설치하기
  8. >> Eclipse + C/C++ 로 라즈베리파이 개발하기 <<


이번 포스트에서는 앞서 설치한 C언어 개발환경을 이클립스로 사용할 수 있게 만들어 보겠습니다.

C/C++ 언어는 이전에 살펴본 파이썬이나 NodeJs와는 달리 컴파일 언어이기 때문에 파이썬이나 노드제이에스에서
처럼 단순히 작성한 코드를 라즈베리파이에 손쉽게 업로드하는 것만이 아니라, 크로스 컴파일러에 의해 
빌드된 결과물을 업로드 시켜야 해서 좀 더 의미있는 작업이라 할 수 있겠습니다.

우선 개발 PC에 이클립스를 설치해야 합니다.
이클립스는 이전 포스트에서 설치한 것 처럼 이미 설치가 되어 있을 수 도 있고,
처음 설치해서 사용하는 경우도 있을 겁니다.

이클립스를 아직 설치하지 않은 경우에는 이클립스 배포판 중에 “Eclipse IDE for C/C++ Developers”를
받으시면 됩니다.



만약 이클립스를 이전에 설치해서 사용하고 있는 경우에는 이클립스 메뉴 “Help > Install New Software”를 이용해서 CDT 플러그인을 설치합니다.

Add 버튼을 눌러서 새로운 Repository를 추가합니닫.

Update Repository Site URL : http://download.eclipse.org/tools/cdt/releases/8.8.1


CDT 플러그인 Repository 사이트 URL은 아래 URL에 웹 브라우저로 접속하면, 현재 본인이 사용하는 이클립스 버전에 맞는 것을 구할 수 있습니다.


설치할 수 있는 Feature 목록이 뜨면 "CDT Main Features”와 “CDT Optional Features”를 선택하고, “CDT Preview Features”는 선택하지 않습니다.
모두 선택해서 설치해도 문제 될것은 없지만, “CDT Preview Features”는 아두이노 개발 환경인데, Preview 이라서 그런지 아직 원활히 사용하기 좋지 않고
쓸데없이 큰 아이콘이 나타나서 화면도 보기 좋지 않습니다. 


설치를 마치면 이클립스는 재시작 될것이구요, 재시작 후에 퍼스펙티브를 C/C++로 바꾸어 줍니다.

왼쪽 Project Explorer에서 오른쪽 마우스 클릭해서 “C Project”를 생성합니다.



프로젝트 이름을 적절히 지정하고 Project Type 은 “Hello World ANSI C Project”를 선택하고,
오른쪽 항목에서 Toolchains는 “Cross GCC”를 선택합니다.


그 다음에 나오는 Basic Settings는 적절히 입력해도 되고 안해도 그만입니다.



Select Configurations는 “Debug”와 “Release” 모두 선택된 그대로 두고 다음으로 넘어 갑니다.


그 다음이 Cross GCC Command 설정창 인데요, 여기가 제일 중요합니다.

이전 포스트에서 다루었던 GCC Cross ToolChain 설치한 경로와 GCC 컴파일러 Prefix를 지정하는 것인데요.
윈도우즈의 경우는 "C:\sysGCC\Raspberry\bin”에 설치하였고, GCC 컴파일러는 "arm-linux-gnueabihf-gcc” 였습니다.
이때 gcc 앞 부분을 Prefix라고 합니다. 그러니까, prefix는 "arm-linux-gnueabihf-“입니다.

맥OS의 경우는 "/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin/“에 설치했고,
GCC 컴파일러는 "arm-linux-gnueabihf-gcc” 였습니다.
그러니까 prefix는 "arm-linux-gnueabihf-“ 입니다.


사용하는 운영체제와 설치한 툴체인에 맞게 prefix와 path를 지정하면 됩니다.
저는 맥OS를 기준으로 지정했습니다.

프로젝트 생성이 끝나면 “Hello World”를 출력하는 기본 코드가 자동으로 완성됩니다.


빌드를 위해서 “Project > Build Project” 또는 툴바에서 망치모양 아이콘을 누릅니다.


빌드가 완료되고 나면 Project Explorer의 프로젝트에 Debug 항목이 생기고 그 안에 빌드된 결과 파일이 생성된 것을 볼 수 있습니다.

이 결과 파일을 라즈베리파이에 업로드해서 실행하면 되는데, 이전에 알아본  SCP 또는 WinSCP 를 이용해도 되고,
이클립스의 Remote System Explorer를 이용해도 됩니다만, 좀 더 쉬운 방법으로 해보겠습니다.
업로드해서 실행하는 2단계를 한번에 해결할 수 있는 방법을 알아 보겠습니다.

이전 포스트에서도 다뤘던 Remote System 등록하는 것입니다.
이미 라즈베리파이가 등록되어 있다면 이 단계는 넘어 가도 됩니다.




리모트 시스템으로 등록되었다면 다시 C 프로젝트로 돌아와서 프로젝트를 선택하고 오른쪽 마우스 클릭해서 “Run As >  Run Configurations”를 선택합니다.


Run Configurations 화면에서 “C/C++ Remote Application”항목을 선택하고 “new” 버튼을 클릭합니다.



그러면 오른쪽 화면이 달라지는데, Remote Absolute File Path 부분에 이 프로젝트 결과 파일을 실행하기 위해 업로드할 위치를 지정합니다.
Browse 버튼을 누르면 창을 뜨는데, Connection 부분에서 등록한 라즈베리파이를 선택하고 하단에서 실행을 위해 업로드할 경로를 지정합니다.
필요에 따라 오른쪽 마우스를 클릭해서 새로운 디렉토리를 생성할 수 도 있습니다.



라즈베리파이에 업로드해서 실행할 경로를 지정하고나서 그 하위경로에 실행할 파일 이름을 직접 작성해서 완성합니다.
그리고 그 아래 항목 즉 “Commands to execute before application”  부분은 실행전에 해야 할 명령어를 입력하는 곳인데,
이전 포스트에서 살펴본 것 처럼 실행권한이 없기 때문에 “chmod 744”로 실행 권한을 주는 명령어를 입력했습니다.


끝으로 Run 버튼을 누르면 이클립스가 지정된 경로에 업로드하고 실행까지 한 뒤에 그 결과 화면을 아래쪽 console view에 보여 주는 것을 볼 수 있습니다.



이 방법에 단점이 있다면, 라즈베리파이의 GPIO를 접근하기 위한 어플리케이션을 작성한 경우 그 파일의 실행에 sudo 권한을 필요로 하는 경우가 있는데,
이 때에는 이 방법으로 하면 실행에 오류가 나서 결과를 볼 수 가 없습니다. 하는 수 없이 SSH로 접속해서 직접 실행하고 그 결과를 봐야 합니다.
혹시, 이 문제를 해결할 수 있는 방법을 아시면 댓글 부탁 드립니다.

이것으로 라즈베리파이에 파이썬, NodeJs, C/C++ 언어를 가지고 Eclipse로 개발환경을 꾸미는 내용의 연재를 모두 마쳤습니다.

향후에는 GPIO, UART 등의 하드웨어 연결에 대한 방법과 홈 오토메이션 프로젝트에 필요한 개별 내용을 다뤄 보도록 하겠습니다.


이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다.

  1. 라즈비안 OS 설치하기
  2. 키보드 모니터 없이 라즈베리파이 Login 하기
  3. Wifi 설정 / 기본 설정하기
  4. 파이썬 + Eclipse로 라즈베리파이 개발하기
  5. 라즈베리파이에 NodeJs 설치하기
  6. NodeJs + Eclipse로 라즈베리파이 개발하기
  7. C/C++ Cross Compiler(Tool Chain) 설치하기
  8. >> Eclipse + C/C++ 로 라즈베리파이 개발하기 <<