한국어
Qt
 

Windows에서 Qt를 크로스컴파일 후 여기서는 Qt 어플리케이션을 개발하고 크로스컴파일러를 이용해 빌드하여 원격으로 라즈베리파이에 deploy 및 실행하기 위한 방법을 소개한다. 윈도우즈에서 설정 및 개발을 진행하였지만 리눅스나, Mac에서도 동일하게 적용되는 내용이다.

 

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

 

Step 1. 타겟 Device추가

 

먼저 Qt Creator를 실행하고 Tools - Options를 클릭한다.

왼쪽 메뉴에서 Devices를 선택하고 Add 버튼을 클릭한다.

 

디바이스 설정 마법사창이 뜨면 Generic Linux Device를 선택 후 Start Wizard를 클릭한다.

wizard_selection.png

 

아래 화면처럼 라즈베리파이 환경 정보를 입력한다.

device_setup.png

 

설정을 완료하고 Device Test를 실행하여 아래처럼 나오면 성공한 것이다.

device_test.png

 

Apply를 클릭하여 저장한다.

 

Step 2. 컴파일러 및 Kit 설정

 

왼쪽 메뉴에서 Build & Run 을 선택한다.

먼저 Qt Versions 탭을 선택하고 오른쪽 Add 버튼을 클릭한다.

Browse를 클릭하고 raspberri용으로 빌드된 qmake.exe를 선택한다.

add_qmake.png

 

그다음 Compilers 탭을 선택하고 Add버튼 - GCC - C++을 클릭한다.

마찬가지로 Browse를 클릭하고 이전에 설치한 크로스컴파일러(C:\SysGCC\raspberry\bin\arm-linux-gnueabihf-c++.exe)를 선택한다.

ABI 를 아래 화면처럼 설정해준다.

add_compiler.png

 

그다음 Debuggers탭을 선택하고 Add 클릭.

Browse를 클릭하고 이전에 설치한 디버거(C:\SysGCC\raspberry\bin\arm-linux-gnueabihf-gdb.exe)를 선택한다.

 

마지막으로 Kits 탭을 선택하고 Add를 클릭한다.

Device type은 Generic Linux Device 선택.

Device는 위에서 추가 시켜준 raspberry_pi3를 선택.

Compiler는 C++, Debugger, Qt version를 위에서 추가 시킨것을 각각선택한다.

add_kits.png

 

모든 설정을 마쳤으므로 OK를 클릭한다.

 

Step 3. 예제 어플리케이션 컴파일 및 실행

 

File - New File or Project 를 선택 후 Qt Quick Application - Empty 를 선택한다.

Kits 선택에서 위에서 추가해준 raspberry pi3를 체크하고 프로젝트 생성을 완료한다.

kit_selection.png

 

타겟으로 deploy를 위해  .pro 파일을 더블클릭해서 열고 상단에 아래 화면과 같이 타이핑해준다.

target.path = /home/pi
INSTALLS += target

 

edit_project.png

 

좌측 하단에 Run 버튼을 누르면 빌드 및 라즈베리파이로 deploy되어 원격 실행된다.

run.png

 

라즈베리파이에 연결된 디스플레이에 변화가 있을 것이다.

hello_raspberrypi3.jpg

 

 

디버거이슈

라즈베리파이 윈도우용 툴체인에 포함된 디버거로 디버깅을 시도하면 다음과 같은 에러와 함께 동작되지 않는다. "The selected build of GDB does not support Python scripting. It cannot be used in Qt Creator" 

gdb_error.png

 

이경우 python을 지원하는 prebuild Qt GDB를 사용하여 해결되었다. 

http://download.qt.io/development_releases/prebuilt/gdb/

gdb-arm-none-.png

 

 

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 85805
58 QML과 QtQuick 모듈 개념과 기본 타입들 makersweb 2019.04.26 13385
57 QML 전역 객체 (Global Object) file makersweb 2019.04.10 1048
56 tslib의 ts_calibrate를 응용해서 Qt로 터치보정기능 구현 file makersweb 2019.04.06 1364
55 GPU가 없는 장치에서 Qt Quick을 사용 makersweb 2019.04.02 1857
54 QTextCodec클래스를 사용하여 유니코드와 EUC-KR 변환 makersweb 2019.03.25 2890
53 qInstallMessageHandler를 이용한 디버그 메세지 출력 제어하기 makersweb 2019.02.25 1351
52 Qt5기반 독립 프로세스(out-of-process)로 동작하는 가상키보드(virtual keyboard) file makersweb 2019.02.24 2624
51 Qml 기본 컴포넌트 강좌 (4) - 모델 리스팅(Listing) file 운영자 2019.02.23 5294
50 Qt Bluetooth를 이용한 시리얼(Serial) 통신 file makersweb 2019.02.17 3554
49 Qml 기본 컴포넌트 강좌 (3) - 배치(positioning) 컴포넌트 file 운영자 2019.02.10 4863
48 QString 문자열 다루기 예제 운영자 2019.01.26 40012
47 Qt SQL을 이용한 가벼운 데이터베이스 다루기 [1] file 운영자 2019.01.23 6949
46 구글 클라우드 Speech-To-Text API를 Qt기반(C++, Qml)테스트 [7] file makersweb 2019.01.20 2616
45 QNetworkAccessManager를 통해 HTTP POST 하는 예제 makersweb 2019.01.17 4756
44 Qt응용프로그램 실행 시 콘솔창(터미널)같이 띄우기 file makersweb 2019.01.16 4479
43 안드로이드 가상장치 사용 file makersweb 2019.01.13 1072
42 Qml 기본 컴포넌트 강좌 (2) [2] file makersweb 2019.01.05 8614
41 Qml 기본 컴포넌트 강좌 (1) file makersweb 2019.01.03 12058
40 QtWayland와 ivi-compositor file makersweb 2018.12.27 2401
39 Qml과 C++로 구현하는 GUI어플리케이션 file makersweb 2018.12.25 13925