https://www.raspberrypi.org/downloads/raspbian/
이미지를 다운 받아 sd메모리에 쓰고 부팅하여 ssh를 활성화 합니다.
SmartTTY tool을 이요해 ssh로 라즈베리파이에 접속합니다.
접속하여 아래 명령어를 실행합니다.
sudo apt update
라즈베리파이의 GPU 메모리를 256으로 할당합니다.
sudo vi /etc/bash.bashrc 명령어를 입력하여 파일을 연 후 맨아래에 export LD_LIBRARY_PATH=/opt/vc/lib 설정하고 저장합니다.

sudo vi /boot/config.txt 명령어를 입력하여 파일을 연 후 dtoverlay=vc4-kms-v3d줄을 주석처리하고 저장한다.

라즈베리파이 사전 설치 및 환경 구성은 완료되었으며 reboot해줍니다. 이 후 Qt 빌드 환경 구성 및 실행 시 추가적으로 설정하는 부분은 아래에 나올 것 입니다.



Component 선택을 전부 선택해줬습니다. 라즈베리파이에 불필요하다 싶은건 설치하지 않아도 되지만 저는 우선 전부 선택했습니다.





SmartTTY 실행하여 라즈베리파이에 ssh접속 합니다.



scp탭에 Download a directory를 선택하여 아래 파일들을windows에 C:\sysgcc\Raspberry\arm-linux-gnueabihf\sysroot 경로로 다운합니다.
/lib
/usr/include
/usr/lib
/usr/local/include/
/usr/local/lib

다운로드 중 계정의 권한이나 폴더가 없어서 실패하는 경우가 발생합니다. 아래 이미지처럼.

에러나는부분은 패스하고 진행하면 됩니다. 나머지부분은 복사가 완료됩니다.
이제 라즈베리파이에 대해 EGLFS 지원을 활성화하려고 합니다.
기본적으로 해당 라이브러리는 다음과 같아야합니다.
로컬에 opt/lib폴더에 있습니다.
C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\arm-linux-gnueabihf로 이동하여 libEGL.so.1 그리고 LIBGLESv2.so.2를 C:\SysGCC\raspberry\arm-linuxgnueabihf\sysroot\opt\vc\lib 와 C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot로 복사합니다.
그리고 libEGL.so와 libGLESv2.so으로 이름을 변경합니다.
opt/vc/lib폴더에 libEGL_static.a를 libEGL.a로 libEGLSv2_static.a를 libGLESv2.a로 이름을 변경합니다.
Qt Creator를 설치한 폴더로 이동합니다.
(C:\Qt\Qt5.12.6\5.12.6)
이동한 폴더에서 raspberry라는 폴더명을 만듭니다.

만든 raspberry폴더에 Src폴더를 복사합니다.

C:\Qt\Qt5.12.6\5.12.6\raspberry\Src\qtbase\mkspecs\linux-arm-gnueabi-g++폴더로 이동해 qmake.conf파일을 열어 arm-linux-gnueabi-문구를 arm-linux-gnueabihf-로 전체 수정합니다.


C:\Qt\Qt5.12.6\5.12.6\raspberry\Src\qtbase\mkspecs\win32-g++폴더로 이동해 qmake.conf파일을 열어 CXXFLAGS에 -USTRICT_ANSI를 추가합니다.


C:\Qt\Qt5.12.6\5.12.6\raspberry폴더로 이동하여 build폴더를 생성합니다.
build폴더에서 c:\SysGCC\MinGW32\msys\1.0\msys.bat를 실행합니다.
그리고 실행된 msys.bat파일로 빌드폴더로 이동하여 빌드 명령어를 실행합니다.
(../Src/configure -platform win32-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -release -opengl es2 -device linux-rasp-pi3-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -nomake examples -nomake tests -no-use-gold-linker -qt-pcre -opensource -confirm-license -IC:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot/opt/vc/include -L C:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot/opt/vc/lib)
아래 이미지들을 참고하세요.


명령어 실행이 완료되면 make 명령어를 실행합니다.
엄청 오래걸립니다. 이점 참고하세요

qtscript를 빌드하는 동안 아래 이미지처럼 오류가 발생할 수 있습니다.

그렇다면 make -i 옵션을 주어 명령어를 다시 실행합니다.

make가 성공적으로 끝났습니다.

make가 끝났으면 make install -i 명령어를 실행해 설치합니다.

작업이 완료되었습니다.

make가 완료 되면 qt빌드는 C:\SysGCC\raspberry\arm-linuxgnueabihf\sysroot\usr\local\Qt-5.12.x 에서 확인할 수 있습니다.
우선 타겟인 라즈베리파이로 ssh 접속 후 /usr/local에 Qt-5.12.x폴더를 생성해주고 복사할 수 있는 권한을 생성합니다.


qt 빌드파일을 라즈베리파이 환경인 /usr/local/Qt-5.12.x/ 에 복사합니다. (winscp를 사용했습니다.)

windows에 있는 C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot\opt\vc에 파일들을 타켓인 라즈베리파이에 /opt/vc 폴더안에 복사한다.
권한이 필요하니 타겟인 라즈베리파이에 vc폴더를 생성해준다.(아래 이미지 참고)

생성된 vc폴더에 windows에 있는 vc 파일들을 복사해준다.

타겟인 라즈베리파이에서 복사완료된 /opt/vc/lib로 이동하여 EGLFS 라이브러리를 심볼릭 링크를 생성합니다.
sudo ln –s libbrcmEGL.so libEGL.so.1
sudo ln –s libbrcmGLESv2.so libGLESv2.so.2
Windows에서 설치한 Qt Creator를 열어 Tools->Options->Kits->Qt Versions로 이동하여 Add버튼을 클릭하여 C:\SysGCC\raspberry\arm-linuxgnueabihf\sysroot\usr\local\Qt-5.13.2\bin폴더로 이동하여 qmake.exe를 선택합니다.

kits 탭으로 이동하여 Add버튼을 클릭하고 raspberry pi라는 이름을 등록하고 Deivce는 Generic Linux Device(default for Generic Linux)를 선택합니다.
(아래 이미지 참고)

Divces로 이동하여 Add버튼을 클릭하여 Generic Linux Device를 선택합니다.

아래 이미지처럼 필요한 정보들을 입력하고 다음으로 넘어갑니다.

Create New Key Pair버튼을 클릭하고 SSH Key Configuration에 private key file, public key file을 설정후 Generate And Save Key Pair버튼을 선택합니다.

그 후 Deploy Public Key버튼을 눌러 ssh login을 위한 password 인증을 합니다.
인증 후 설정을 마칩니다.




설정이 완료되었으면 프로젝트를 새로하나 만들고 profile에 target.path를 /home/posa20000으로 변경합니다.(아래 이미지 참고)

Qt에 이 명령을 추가합니다. - Platform linuxfb:fb="/dev/fb0"

자 이제 빌드하고 실행해봅니다.
엇 실행했더니 실행은되지만 아래 이미지처럼 warning이 발생하고 타겟인 라즈베리파이에는 버튼에 글씨가 보이지 않는다.


warning에는 font관련 폴더를 찾을 수 없다라고 되어있다.
https://dejavu-fonts.github.io 들어가서 dejavu-fonts를 다운받아 압축을 풉니다.

그리고 타겟인 라즈베리파이에서 /usr/local/Qt-5.12.x/lib에 들어가 fonts폴더를 생성합니다.

winscp를 사용하여 다운받은 dejavu-fonts-ttf\ttf안에 있는 파일들을 /usr/local/Qt-5.12.x/lib/fonts로 복사합니다.

그 이후 다시 Qt Creator에서 실행합니다.
warning은 제거되고 화면에 text가 표기되는게 보입니다.

마지막으로 debug를 해보겠습니다.
앗 아래 이미지처럼 메시지가 발생하네요.

해결방법은
https://download.qt.io/development_releases/prebuilt/gdb/windows-7들어가 gdb를 설치하고 압축해제합니다.

Qt creator options에서 debuggers에서 압축푼 gdb 추가합니다.


gdb-arm-none-linux-gnueabi.exe로 설정해줍니다.

설정 완료하였다면 아래이미지처럼 kits탭으로 이동하여 Debugger를 설정해줍니다.

그리고 타겟인 라즈베리파이에 접속하여 sudo apt-get install gdbserver 명령어를 실행합니다.

gdbserver 설치가 완료되었다면 다시 debug를 진행해봅니다.

정상적으로 debug가 되었습니다.
선생님 글 정말 잘 읽었습니다. 혹시 make 하실 때 다른 오류는 없으셨나요?? 저는 python을 2.7.5로 설치하고, msys 환경변수도 넣었는데.. python --version을 입력해도 version 2.7.5가 나오지만, make하면 warring 뜨더라구요..