한국어
Qt
 

호스트 개발환경 : 윈도우7

 

Step 1. 라즈베리파이 운영체제 설치

https://www.raspberrypi.org/downloads/raspbian/

RASPBIAN STRETCH 이미지를 다운로드 받고 sd메모리에 쓰고 부팅하여 ssh를 활성화 한다.

 

Step 2. 라즈베리파이 툴체인 다운로드

http://gnutoolchains.com/raspberry/

 

두가지 툴체인을 다운로드 받아야 하는데 최신 툴체인(raspberry-gcc6.3.0)에는 타겟(라즈베리파이3)과 sysroot 동기화 툴이 존재하지 않는다.

그래서 raspberry-gcc-4.9.2-r4 를 먼저 설치하고 동기화툴을 복사해오는 과정이 필요하다.

sysprogs.png

 

먼저 raspberry-gcc-4.9.2-r4를 설치하고 설치된 폴더에서 TOOLS 폴더를 raspberry-gcc6.3.0 설치 폴더에 복사한다.

SysGCCTools.png

 

이제 <SysGCC>\raspberry\TOOLS의 UpdateSysroot.bat를 실행한다. 

Select를 클릭하고 라즈베리파이의 주소 및 계정정보를 입력 후 connect한다.

아래 그림과 같이 동기화 디렉토리들을 명시하고 Synchronize를 클릭한다.

sync.png

 

그러면 라즈베리파이에서 위에 명시한 디렉토리들의 항목들을 가져오면서 sysroot 동기화가 될 것이다.

(동기화 작업은 라즈베리파이에 새로운 패키지를 설치하거나의 변화가 있을때 다시 해줘야한다.)

synchronize.png

 

Step 3. Qt5.10 소스코드 다운로드 및 설치

온라인 인스톨러 다운로드 후 5.10(소스코드포함) 및 mingw530을 체크하여 설치한다. (기본 C:\ 에 설치한다.)

https://www.qt.io/download

 

Step 4. Qt 빌드

C:\Qt\raspberry_pi 폴더 생성(최종 인스톨될 폴더)

C:\Qt\5.10.0\raspberrypi3 폴더생성

 

시작 - Qt - 5.10.0 - MinGW 5.3.0 (32-bit) - Qt 5.10.0 for Desktop (MinGW 5.3.0 32 bit) 실행

RunCmd.png

 

C:\Qt\5.10.0\raspberrypi3 로 이동

아래 명령을 통해 컴파일러 전체경로가 나오는지 확인하고 그렇지 않다면 툴체인 경로를 환경변수에 등록해줘야 한다.

C:\Qt\5.10.0\raspberrypi3>which arm-linux-gnueabihf-g++

 

configure실행 (여기서는 opengl es2 옵션 추가 및 QPA플러그인으로 EGLFS로 선택된다. 또한 빠른 빌드를 위해 예제를 포함한 몇가지는 제외하였다.)

만약 x윈도우 시스템에서 동작 되길 원한다면 다음 글을 참고하자: https://forum.qt.io/topic/83700/raspberry-pi-3-compile-with-x11-eglf-not-wanted/5 

C:\Qt\5.10.0\raspberrypi3>..\Src\configure -opensource -confirm-license -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE="C:\SysGCC\raspberry\bin\arm-linux-gnueabihf-" -prefix /usr/local/qt5pi -extprefix "C:\Qt\raspberry_pi" -hostprefix "C:\Qt\raspberry_pi" -nomake examples -nomake tests -no-use-gold-linker -qt-pcre -skip qtscript -skip qttools -skip qtserialbus

 

configure.png

 

C:\Qt\5.10.0\raspberrypi3>mingw32-make -j4
C:\Qt\5.10.0\raspberrypi3>mingw32-make install

위과정을 거치면 컴파일된 라이브러리들이 C:\Qt\raspberry_pi 폴더에 인스톨 된다. (python이 설치되어 있지 않으면 실패할 수 도 있다.)

 

Step 5. 배포

<SysGCC>\raspberry\TOOLS\PortableSmartty 에 있는 SmarTTY를 이용하거나 다른 SSH 클라이언트를 이용하여 라즈베리파이에 접속한다.

그다음 /usr/local/qt5pi 디렉토리를 만든다. (아래 명령 참고)

pi@raspberrypi:/opt $ cd /usr/local/
pi@raspberrypi:/usr/local $ sudo mkdir qt5pi
pi@raspberrypi:/usr/local $ sudo chown pi qt5pi/

 

이제 컴파일된 라이브러리들을 타겟에 배포 하기위해 WinSCP를 다운로드하고 설치한다.  (SmarTTY의 SCP 기능으로도 가능하다)

https://winscp.net/

 

WinSCP를 실행하고 타겟에 접속한다.

winscp_1.png

 

/usr/local/qt5pi 디렉토리로 업로드

winscp_2.png

 

업로드는 몇 분 정도 소요된다. 

winscp_3.png

 

업로드가 완료되면 이제 라즈베리파이에서 Qt어플리케이션을 실행 시킬 수 있다.

 

윈도우에서 Qt Creator를 이용하여 라즈베리파이로 원격 실행에 관한 내용은 이곳을 참고하면된다.

 
번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 437283
80 컨테이너에 적재된 객체를 편리하게 삭제하기 makersweb 2019.09.18 7752
79 C++로 구현된 모델을 QML의 ListView에서 참조 file makersweb 2019.09.07 11272
78 QSocketNotifier로 파일 디스크립터의 활동감지 makersweb 2019.08.28 10224
77 MCU용 Qt에 대해서 makersweb 2019.08.22 8415
76 [Qt News] Qt for Python을 위한 기술 비전 j2doll 2019.08.20 21676
75 열거형(enum)을 QML에서 사용하는 방법과 문자열(QString)로 얻기 makersweb 2019.08.20 11724
74 [Qt News] Qt 6 기술 비전 (Technical vision for Qt 6) [2] j2doll 2019.08.08 14086
73 [Qt News] Qt6 Git 개발 초기 단계 시작하기 j2doll 2019.08.02 14534
72 [Qt] Google Play의 향후 요구 사항을 준수하는 방법 [2] j2doll 2019.07.29 13962
71 Qt기반의 오픈소스 프로젝트들 - 2 운영자 2019.07.21 15431
70 QML, 이미지, 폰트등을 바이너리 리소스로 만들기 makersweb 2019.06.24 9302
69 Qt Creator에서 임베디드 장치로 deploy설정(Custom Process Step) file makersweb 2019.06.15 13116
68 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 13807
67 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 16048
66 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 14245
65 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) [1] file makersweb 2019.05.26 31993
64 QML에서 멀티 스레드(multithreading) 프로그래밍 file makersweb 2019.05.25 9153
63 QtSerialPort를 사용한 시리얼(Serial)통신 [3] makersweb 2019.05.21 22875
62 Qt기반의 오픈소스 프로젝트들 makersweb 2019.05.15 14909
61 Q_D매크로와 d-pointer file makersweb 2019.05.07 8857
 
단일배너