우선 라즈베리 파이 2를 기준으로 하며, 2017-04-10-raspbian-jessie.img 으로 설치한 후 패키지 업데이트. 

(유선랜에서 해도 한시간은 족히 걸림) 완료했더니 Raspberrypi kernel 1.20170427-1 version 이 설치된 상태이다.

firmware까지 업데이트하고 재부팅.

이렇게 하면 리눅스 커널의 버전이 4.9.28-v7+이다. 이 상태를 기준으로 진행한다.

실행시 sudo 권한을 준다.

아래처럼 개발도구(IDE)가 켜진다. 그런데 아직은 프로젝트 생성 후 컴파일이 되지 않을 것이다.

오류 : No tool chain set from kit "Desktop"이 발생한다면 Project 설정에 진입하자.

Tools -> Options 에 보면 Compilers가 아무것도 없는 상태일 것이다.

arm 크로스컴파일러의 위치는 /usr/bin/arm-linux-gnueabihf-gcc 에 있다. 이 경로를 다음과 같이 추가하자.

이제 본격적으로 프로젝트를 생성해보자.

프로젝트 이름과 디렉토리를 지정한다.

속성은 우선 Qt Widgets Application 으로 한다.

정상적인 상태라면 아래처럼 Desktop이라는 Kit 이 활성화되어 있어야 한다. raspberry pi 의 데스크탑이면 사실상 ARM Linux 용으로 컴파일 된다.

기본적인 헤더와 소스코드 파일 구조를 자동으로 생성해주므로 편리하다.

아래와 같이 소스코드가 생긴다. 생성된 상태 그대로 아무런 작업없이 그냥 좌측 하단의 초록색 버튼(실행)을 클릭하면 빈 껍데기 프로그램이 정상적으로 작동해야 한다.

아래와 같이 빈 응용프로그램이 실행된다.

만약 IDE를 거치지 않고 직접 바이너리를 만드려면 어떻게 할까?

방금 생성했던 파일이 있는 위치로 이동하면, untitled(프로젝트명).pro 라는 파일이 있다. 이것을 열어보면 아래와 같은 내용이 자동으로 생성되어 있음을 확인할 수 있다.

여기에 적힌 내용대로 프로젝트를 컴파일하게 된다. 아래와 같이 qmake 를 실행해보자.

qmake를 실행한 결과 Makefile 이 생성되어 있다. 내용이 굉장히 길어서 대략만 살펴보면, 컴파일러와 각종 라이브러리 연동을 지정하는 파일이다. qmake가 자동으로 생성한 내용이다.

특별히 수정할 것이 없으면 make 를 수행하자. 대충 아래와 같이 자동으로 진행될 것이다.

그 결과 untitled라는 바이너리 실행파일이 생성되었다.

이 파일을 자세히 살펴보면, ARM Linux 32-bit 용으로 컴파일 된 것임이 확실하다.

./untitled 를 입력해서 실행해보면 MainWindow 프로그램이 잘 작동한다.

X Server 관련 오류 메시지가 표출되는데, 이것은 RDP나 원격제어로 해서 그래픽 쪽에 문제가 발생하는 것 같다. 프로그래밍에는 큰 지장은 없다. 

CPUU님의 창작활동을 응원하고 싶으세요?