조회 수 16164 추천 수 0 댓글 20
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

호스트 개발환경 : 윈도우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를 이용하여 라즈베리파이로 원격 실행에 관한 내용은 이곳을 참고하면된다.

 
  • ?
    rock1122 2018.12.10 20:30

    여기다 질문을 남겨도 될지 모르겠습니다만은...

    이 글 내용을 그대로 따라했는데요.

    configure 명령에서는 warning 이 한개 뜨긴 합니다만 일단은 정상적으로 된것 같은데, (혹시나 싶어 python도 설치하였습니다.)

    mingw32-make 명령에서 error가 발생합니다.

    에러 내용은 이러합니다.

     

    c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld.exe:QtCore.version:0: syntax error in VERSION script
    collect2.exe: error: ld returned 1 exit status
    mingw32-make[3]: *** [Makefile:1136: ..\..\lib\libQt5Core.so.5.10.0] Error 1
    mingw32-make[3]: Leaving directory 'C:/Qt/5.10.0/raspberrypi3/qtbase/src/corelib'
    mingw32-make[2]: *** [Makefile:225: sub-corelib-make_first] Error 2
    mingw32-make[2]: Leaving directory 'C:/Qt/5.10.0/raspberrypi3/qtbase/src'
    mingw32-make[1]: *** [Makefile:49: sub-src-make_first] Error 2
    mingw32-make[1]: Leaving directory 'C:/Qt/5.10.0/raspberrypi3/qtbase'
    mingw32-make: *** [Makefile:80: module-qtbase-make_first] Error 2

     

    구글링을 며칠째 하고 있는데 도저히 답이 안나오네요.

    이부분에 대해서 아시면 답변 좀 부탁드립니다.

  • ?
    makersweb 2018.12.11 21:39

    error 정보만 가지고는 어떤 상황인지 파악이 힘들구요.. 환경변수 설정이나 configure 명령등은 어떻게 하셧는지요? 구체적인 작업 내용이 궁금하네요!

  • ?
    heuryPa 2018.12.20 15:41

    혹시 perl 을 설치 하셔도 안되시나요? 

  • ?
    makersweb 2018.12.23 21:31

    heuryPa 님이 잘 집어 주신거 같습니다!! 윈도우용 perl을 설치하셔야 되요. (글에 언급이 없었네요ㅠㅠ)

    http://strawberryperl.com/

  • ?
    몽키찡 2019.06.07 18:33

    안녕하세요..

     

    configure실행시 아래와같은 에러가 뜨는데... 어떻게해야할까요..

    Error: No device matching 'linux-rasp-pi3-g++'.

     

    QT5.8.0 에서 진행했습니다.

     

    QT5.11.1 과 5.10.0으로도 해보았으나 이 두개는 cconfigure조차 안먹혀요...아래와 같은 에러로 말이죠...

    Please make sure to unset the QMAKESPEC, XQMAKESPEC, QMAKEPATH,

     and QMAKEFEATURES environment variables prior to building Qt.

  • ?
    makersweb 2019.06.08 21:17

    호스트용 mingw 설치하셧는지랑 툴체인 경로가 환경변수에 추가되어있는지 살펴보시구요.

    그리고 Qt5.8은 configure시 -device linux-rasp-pi-g++ 이렇게 넣어주셔야 합니다.

    주의사항은 본문에서 설명한 GCC6.3버전과 Qt5.8이 안맞을 수 있습니다. 

  • ?
    SYPark 2019.08.08 02:49

    쭉 따라서 하고 있었는데 minGW에서 which 명령어 사용하는 부분부터 완전히 막혔는데 도움을 주실수 있나요? which는 내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일이 아니라고 하고 

    ..\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

    부분도 지정된 경로를 찾을 수 없다고 합니다.

    몇시간째 검색을 해봐도 나오지 않아 질문드립니다.

     

  • ?
    월드1차 2019.08.20 09:49

    configure 옵션에 아래 내용을 추가해 보세요.

    -sysroot C:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot

  • ?

    Synchronize sysroot 에러.png

     

    안녕하세요 Synchronize sysroot 중에 이런 에러가 발생하였습니다. 인터넷에 검색하여 (https://slic.tistory.com/1199) win32 긴 경로를 설정해주었는데도 동일하게 에러가 발생합니다. 이럴 경우에 라즈베리파이 OS를 다시 설치하는 것이 좋을까요?

  • ?
    크로스컴파일배우기 2020.02.07 15:15

    라즈비안 OS 재 설치로 해결하였습니다.

  • ?
    이잉 2020.02.07 16:40

    라즈베리파이4의 경우에는 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

    -device 부분에 어떻게 써야하나요??

  • ?
    makersweb 2020.02.08 11:49

    라즈베리파이4를 대상으로는 아직 해볼지 못했습니다만 -device 옵션을 제외하고 다른 configure 옵션은 크게 다르지 않을 것으로 예상합니다. 

  • ?
    QT러닝 2021.06.30 09:22

    질문드립니다.

    toolchain을 설치했습니다. 8.3.0 ver

    Tools 폴더가 없습니다. 버전업이 되면서 사라진듯한데 다른 방법은 없나요?

  • ?
    makersweb 2021.06.30 09:45

    오래전에 자료실에 올려둔 것이 있네요. https://makersweb.net/download/6242

  • ?
    QT러닝 2021.06.30 13:27

    synchronize sysroot tool은 따로 버전별로 업데이트 되고 있진 않은가보군요

    답변 감사드립니다. 

  • ?
    QT러닝 2021.06.30 16:32 Files첨부 (2)

     

    질문 있습니다.  환경 변수는 자동으로 들어가 있었고 Makersweb님이 올려두신대로 했는데 여러가지 문제가 있네요

    제가 크로스컴파일에대해서 제로베이스에서 시작하다 보니 기초적인것 부터 막히네요 ㅡㅜ

    1.JPG2.JPG

     

     

     

  • ?
    QT러닝 2021.07.02 09:16 Files첨부 (2)

    1.JPG

     

    2.JPG

     

  • ?

    하...크로스컴파일 처음입니다. 

    arm-linux-gnueabihf-g++ (Raspbian 8.3.0-6+rpi1) 8.3.0

    gcc6.3, 윈도우10 64bit 머신, Qt5.15.1버전, 라즈베리5 환경입니다. 

     

    빌드를 했는데, 다음과 같은 에러가 납니다.. 어떻게 해야 할까요?

    + cd qtbase

    + C:\Qt\5.15.1\Src\qtbase\configure.bat -top-level -sysroot C:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot -opensource -confirm -license -release -opengl es2 -device linux-raps-pi2-g++ -platform win32-g++ -device-option CROSS_COMPILE="C:\SysGCC\raspberry\bin\arm-linux-gnueabihf-g++" -prefix /usr/local/qt5pi -extprefix "C:\Qt\5.15.1\raspberry_pi" -hostprefix "C:\Qt\5.15.1\raspberry_pi" -nomake examples -nomake tests -no-use-gold-linker -qt-pcre -skip qttools -skip qtserialbus

    Bootstrapping qmake ...

    g++ -c -o qmakebuiltins.o -DUNICODE -DMINGW_HAS_SECURE_API=1 -std=c++11 -ffunction-sections -g  -IC:/Qt/5.15.1/Src/qtbase/qmake -IC:/Qt/5.15.1/Src/qtbase/qmake/library -IC:/Qt/5.15.1/Src/qtbase/qmake/generators -IC:/Qt/5.15.1/Src/qtbase/src/3rdparty/tinycbor/src -IC:/Qt/5.15.1/Src/qtbase/qmake/generators/unix -IC:/Qt/5.15.1/Src/qtbase/qmake/generators/win32 -IC:/Qt/5.15.1/Src/qtbase/qmake/generators/mac -IC:/Qt/5.15.1/Src/qtbase/include -IC:/Qt/5.15.1/Src/qtbase/include/QtCore -IC:/Qt/5.15.1/Src/qtbase/include/QtCore/5.15.1 -IC:/Qt/5.15.1/Src/qtbase/include/QtCore/5.15.1/QtCore -I../src/corelib/global -IC:/Qt/5.15.1/Src/qtbase/mkspecs/win32-g++ -DQT_VERSION_STR=\"5.15.1\" -DQT_VERSION_MAJOR=5  -DQT_VERSION_MINOR=15  -DQT_VERSION_PATCH=1  -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DQT_NO_FOREACH C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp

    C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp: In member function 'QByteArray QMakeEvaluator::getCommandOutput(const QString&, int*) const':

    C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp:542:104: error: '_popen' was not declared in this scope

                                    + QLatin1String(" && ") + args).toLocal8Bit().constData(), QT_POPEN_READ)) {

                                                                                                            ^

    C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp:550:32: error: '_pclose' was not declared in this scope

             int ec = QT_PCLOSE(proc);

                                    ^

    C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp: In member function 'QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinExpand(const QMakeInternal::QMakeBuiltin&, const ProKey&, const ProStringList&, ProStringList&)':

    C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp:1240:25: error: 'KEY_WOW64_32KEY' was not declared in this scope

                     flags = KEY_WOW64_32KEY;

                             ^~~~~~~~~~~~~~~

    C:/Qt/5.15.1/Src/qtbase/qmake/library/qmakebuiltins.cpp:1243:25: error: 'KEY_WOW64_64KEY' was not declared in this scope

                     flags = KEY_WOW64_64KEY;

                             ^~~~~~~~~~~~~~~

    Makefile:259: recipe for target 'qmakebuiltins.o' failed

    mingw32-make: *** [qmakebuiltins.o] Error 1캡처.PNG

     

  • ?
    LISP 2022.06.08 15:35

    공유해주셔서 감사합니다.

    진행 중에 아래와 같은 오류 메시지가 발생합니다.

     

    ERROR: The OpenGL functionality tests failed!
    You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
    QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.

     

    라즈베리파이와 동기화하면서 라즈베리파이에서 가져와야할 파일이 없어서 그럴까요?

  • ?
    makersweb 2022.06.11 15:36

    Raspberry Pi 4 이전의 경우 Raspbian OS 이미지에서 제공하는 EGL 및 GLES 라이브러리를 권장합니다. 일반적으로 /opt/vc/lib 에 있습니다. 참고로 Raspberry Pi 4는 GPU가 이전 버전과 다르기 때문에 vc 라이브러리를 사용하는 대신 Mesa를 사용해야 합니다.


  1. No Image notice

    Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서

    Date2019.01.05 CategoryQML and Qt Quick By운영자 Views110094
    read more
  2. QtWayland와 ivi-compositor

    Date2018.12.27 CategoryMobile and Embedded Bymakersweb Views5060
    Read More
  3. Qml과 C++로 구현하는 GUI어플리케이션

    Date2018.12.25 CategoryQML and Qt Quick Bymakersweb Views17079
    Read More
  4. No Image

    싱글터치 스크린 및 임베디드 리눅스 기반에서 Qt 터치입력

    Date2018.12.24 CategoryMobile and Embedded Bymakersweb Views3688
    Read More
  5. ShaderEffect QML Type 을 이용한 그래픽효과

    Date2018.12.09 CategoryQML and Qt Quick Bymakersweb Views4668
    Read More
  6. No Image

    Qml에서 커튼효과 구현 예제 - Shader Effects

    Date2018.12.05 CategoryQML and Qt Quick By운영자 Views3732
    Read More
  7. 안드로이드 Qt 프로그래밍

    Date2018.11.30 CategoryMobile and Embedded Bymakersweb Views11796
    Read More
  8. 리눅스에서 Qt4.8기반 어플리케이션의 한글입력

    Date2018.11.29 CategoryInstallation and Deployment Bymakersweb Views5005
    Read More
  9. QML에서 동적으로 텍스트 다국어 처리

    Date2018.11.04 CategoryQML and Qt Quick Bymakersweb Views6681
    Read More
  10. Qt Installer Framework - 패키징, 설치프로그램 제작

    Date2018.10.14 CategoryInstallation and Deployment Bymakersweb Views14998
    Read More
  11. Qt 응용프로그램 배포(windows)

    Date2018.10.10 CategoryGeneral and Desktop Bymakersweb Views14744
    Read More
  12. No Image

    소스코드에서 환경변수 가져오기와 설정하기

    Date2018.10.08 CategoryGeneral and Desktop Bymakersweb Views4347
    Read More
  13. 표를 만들고 PDF문서로 출력하기

    Date2018.09.30 CategoryGeneral and Desktop Bymakersweb Views3630
    Read More
  14. Qml에서 키보드 입력 이벤트 핸들링

    Date2018.08.09 CategoryQML and Qt Quick Bymakersweb Views6477
    Read More
  15. Qml 어플리케이션 정적 빌드

    Date2018.07.27 CategoryInstallation and Deployment Bymakersweb Views4373
    Read More
  16. No Image

    Qt Bluetooth 관련 기능 확인 사항

    Date2018.07.10 CategoryInstallation and Deployment Bymakersweb Views3139
    Read More
  17. No Image

    Qml 및 C++개발시 유용한 팁

    Date2018.04.06 CategoryQML and Qt Quick Bymakersweb Views9039
    Read More
  18. No Image

    Qt Version확인 방법

    Date2018.03.29 CategoryGeneral and Desktop Bymakersweb Views6036
    Read More
  19. 초보자를 위한 첫번째 프로젝트 - QML로 만드는 Hello World

    Date2018.03.16 CategoryGeneral and Desktop Bymakersweb Views18778
    Read More
  20. Windows에서 라즈베리파이3 Qt 어플리케이션 개발 및 원격 실행

    Date2018.02.23 CategoryInstallation and Deployment Bymakersweb Views8000
    Read More
  21. Windows에서 라즈베리파이3용 Qt5.10.0 크로스컴파일

    Date2018.02.23 CategoryMobile and Embedded Bymakersweb Views16164
    Read More
Board Pagination Prev 1 ... 5 6 7 8 9 Next
/ 9