https://www.raspberrypi.org/forums/viewtopic.php?f=75&t=204778
주십시오 “raspberrypi.local는”사용의 라즈베리 파이의 IP 주소 작동하지 않는 경우
라즈베리 파이를 준비
사용하십시오 새로운 raspbian (2018년 6월 27일는, 라이트는 테스트하지 작동 할 수 있습니다) 이미지가
업데이트
열어 /etc/apt/sources.list의 파일 및 뎁-SRC에 대한 행의 주석을 제거를
/ opt / vc / lib에 누락 된 라이브러리를 만들려면 수동 커널 업데이트가 필요합니다.
종속성 설치
코드 : 모두 선택
1 2 3 4 5 6 |
sudo apt-get build-dep qt5-qmake sudo apt-get build-dep libqt5gui5 sudo apt-get build-dep libqt5webengine-data sudo apt-get build-dep libqt5webkit5 sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver |
목표 설정
준비가되면 Raspberry Pi는
Linux 호스트 (예 : Ubuntu x64) 업데이트 를 종료 할 준비를 하지 않습니다.
종속성 설치
또한, QtCreator가 설치되어 있어야합니다 (Qt 5.10.1을 Ubuntu 18.04에서 사용합니다). 패키지 소스에서 Qt를 사용할 수 있습니다. 그러나 여기에 많은 것을 설치해야합니다. 설치 프로그램 을 사용 하는 것이 더 쉽습니다 ( http://download.qt.io/official_releases … 5.10.1.run ).
ssh 공개 키 만들기
코드 : 모두 선택
1 2 3 |
ssh-keygen -t rsa -C pi@raspberrypi.local -N "" -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub | ssh -o StrictHostKeyChecking=no pi@raspberrypi.local "mkdir -p .ssh && chmod 700 .ssh && cat >> .ssh/authorized_keys" |
디렉토리 만들기
또는 시스템에서 여러 사용자를 사용하는 경우 uid 1000을 사용자 이름으로 바꿉니다 (uid / gid 1000 = 기본 사용자 / 그룹)
Download Toolchain
PATH에 toolchain 바이너리 디렉토리를 추가하십시오. 파일 .bashrc 열기
이 줄을 파일의 끝에 삽입하십시오.
코드 : 모두 선택
1 2 |
export PATH=$PATH:/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin |
변경은 터 L 널이 다시 시작될 때만 적용됩니다. 여기에서 터미널을 닫으면 / opt / qt5pi 폴더로 다시 이동하십시오.
/ 옵션 / qt5pi / 도구 / 팔 bcm2708 / GCC-리나 – 팔 – 리눅스 – gnueabihf-raspbian / 빈 : 32 비트 호스트를 사용하는 경우,이 툴체인 사용하십시오
Qt는 소스 다운로드
코드 : 모두 선택
1 |
wget http://download.qt.io/official_releases/qt/5.10/5.10.1/single/qt-everywhere-src-5.10.1.tar.xz |
Untar Qt 소스
hf 구성 만들기
코드 : 모두 선택
1 2 3 |
cp -R qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-arm-gnueabi-g++ qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-arm-gnueabihf-g++ sed -i -e 's/arm-linux-gnueabi-/arm-linux-gnueabihf-/g' qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-arm-gnueabihf-g++/qmake.conf |
Raspberry Pi sysroot 다운로드
코드 : 모두 선택
1 2 3 4 5 6 |
mkdir sysroot sysroot/usr sysroot/opt rsync -avz pi@raspberrypi.local:/lib sysroot rsync -avz pi@raspberrypi.local:/usr/include sysroot/usr rsync -avz pi@raspberrypi.local:/usr/lib sysroot/usr rsync -avz pi@raspberrypi.local:/opt/vc sysroot/opt |
이것은 약간의 시간이 걸립니다. 파일이 전송되지 않았다는 오류 메시지가 나타날 수 있습니다. 이것은 정상적인 것이며 무시할 수 있습니다. 어떤 경우에도 / usr 폴더의 모든 권한을 변경하지 마십시오!
“누락 된”라이브러리에 대한 올바른 심볼릭 링크 만들기
코드 : 모두 선택
1 2 3 |
mv sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0_backup ln -s sysroot/opt/vc/lib/libEGL.so sysroot/usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 |
코드 : 모두 선택
1 2 3 |
mv sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_backup ln -s sysroot/opt/vc/lib/libGLESv2.so sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 |
팁 : 심볼릭 링크가 이미 라즈베리 파이에 변경 한 경우 다시 파이에서 아래로 초대 SYSROOT 경우 (예 : 업데이트)이 단계를 절약 할 수 있습니다
상대 심볼릭 링크에 절대 심볼릭 링크로 변환
코드 : 모두 선택
1 2 3 4 |
wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py chmod +x sysroot-relativelinks.py ./sysroot-relativelinks.py sysroot |
이 단계에서는 반드시 symlink가 변경된 결과물을 얻어야합니다. 심볼릭 링크는 sysroot를 다운로드 한 후 호스트 시스템의 라이브러리를 잘못 가리 킵니다. 이 문제를 해결해야합니다. 출력을받지 못하면 무언가 잘못되었거나이 단계가 이미 실행되었습니다.
빌드 디렉토리 빌드
구성
코드 : 모두 선택
1 2 3 |
cd qt5build ../qt-everywhere-src-5.10.1/configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /opt/qt5pi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -no-gbm -skip qtscript -nomake tests -nomake examples -make libs -pkg-config -no-use-gold-linker -v 2>&1 | tee ../configure.log |
QtScript를 건너 뛰었으므로 더 이상 사용되지 않습니다.
라즈베리 파이의 각 세대를 들어 -device 변경할 수있는 옵션이
Raspberry Pi 1 (+ Zero and Zero W): -device linux-rasp-pi-g++
Raspberry Pi 2: -device linux-rasp-pi2-g++
Raspberry Pi 3: -device linux-rasp-pi3-g++
Raspberry Pi 3 with VC4 driver: -device linux-rasp-pi3-vc4-g++
확인
Raspberry Pi에 업로드
Qt를 구성
개방 QtCreator
도구 -> 옵션 …-> 장치 -> 추가
일반 리눅스 디바이스
변경 호스트 이름, 인증 유형 키, 사용자 이름 및 개인 키를 추가 (~ / 스푸핑 / id_rsa_gsg_keypair를)을 첨가
도구 -> 옵션 …-> 빌드 및 실행> Debuggers-> 추가
변경 이름과 디렉토리 (/ 옵션 / qt5pi / 도구 / 팔 bcm2708 / GCC-리나 – 팔 – 리눅스 – gnueabihf-raspbian-64 / 빈 / 팔 – 리눅스 – gnueabihf-GDB)
디버거를 툴체인은 qtcreator와 함께 작동하지 않습니다.
당신은 (감사에 대한 GrisuMS에 설치 호스트 시스템에서 GDB multiarch을 참고 하고 해당 경로 (일반적으로는 / usr / 빈 / gdb를 multiarch)를 사용).
도구 -> 옵션 …-> Compilers-> 추가 -> GCC> C
이름 변경 및 디렉토리 (/ 옵션 / qt5pi / 도구 / 팔 bcm2708 / GCC-리나 – 팔 – 리눅스 – gnueabihf-raspbian-64 / 빈 / 팔 – 리눅스 – gnueabihf의 GCC)
<정의>하는 팔 리눅스의 ABI 일반적인 일레븐 – 32 비트를 변경
도구 -> 옵션 …-> Compilers-> 추가 -> GCC> C ++
변경 이름과 디렉토리 (/ 옵션 / qt5pi / 도구 / 팔 bcm2708 / GCC-리나 – 팔 – 리눅스 – gnueabihf -raspbian-64 / 빈 / 팔 리눅스 gnueabihf-g를 ++)
<사용자>에서 ABI 변화 팔 리눅스 제네릭 일레븐 – 32 비트하는
도구 -> 옵션 …-> Qt는 버전> 추가
선택 / 옵션 / qt5pi / SYSROOT / usr / 지방 / qt5pi / 빈 / qmake를
QtCreator öffnen
Tools->Options…->Devices->Add
Generic Linux Device
Ändere Hostname, authentication type key, Username und füge Private Key ( ~/.ssh/id_rsa ) hinzu
Tools->Options…->Build&Run->Debuggers->Add
Ändere name und Verzeichnis ( /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gdb )
Der Debugger aus dem Toolchain funktioniert mit qtcreator nicht.
Man muss gdb-multiarch auf dem Hostsystem installieren (Danke an GrisuMS für den Hinweis) und dessen Pfad (meist /usr/bin/gdb-multiarch ) verwenden.
Tools->Options…->Compilers->Add->GCC->C
Ändere name und Verzeichnis ( /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc )
ABI von <Benutzerdefiniert> auf arm-linux-generic-elf-32bit ändern
Tools->Options…->Compilers->Add->GCC->C++
Ändere name und Verzeichnis ( /opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ )
ABI von <Benutzerdefiniert> auf arm-linux-generic-elf-32bit ändern
Tools->Options…->Qt Versions->Add
Wähle /opt/qt5pi/sysroot/usr/local/qt5pi/bin/qmake
Tools->Options…->Kits->Add
Ändere Name
Geräte Typ: Generic Linux Device
Gerät: Wähle zuvor erstelltes Raspberry Pi Gerät
Sysroot: Wähle /opt/qt5pi/sysroot
C and C++: Wähle zuvor erstellten Raspberry Pi Kompiler
Debugger: Wähle zuvor erstellten Raspberry Pi Debugger
Qt version: Wähle zuvor erstellte Raspberry Pi Qt Version
도구 -> 옵션 …-> Kits-> 추가
변경 이름
장치 유형 : 일반 리눅스 디바이스
장치 : 이전에 만든 라즈베리 파이 장치 선택
SYSROOT를 :/ opt / qt5pi / sysroot를 선택하십시오.
C 및 C ++ : 이전에 만든 라즈베리 파이 컴파일러 선택
디버거 : 이전에 만든 라즈베리 파이 디버거 선택
의 Qt 버전 : 이전에 만든 라즈베리 파이의 Qt 버전 선택
마침을
하나 여전히 끝에 파일 .PRO 쓰기를 준수해야하는 프로젝트를 생성 한 후 :
코드 : 모두 선택
1 2 3 4 5 |
# Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /home/pi/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target |
QtCreator에서 컴파일 버튼을 누르면 컴파일 만됩니다.
초록색 재생 버튼을 누르면 편집이 시작되고 이진 파일은 sftp를 통해 Raspberry Pi에 업로드되고 실행됩니다
. 디버그 버튼도 작동해야합니다.
* 편집 가능한
경우 문제가 발생한 경우 첨부하십시오. 사용 가능한 로그 파일. 예를 들어 파일을 업로드하는 데 사용 pastebin.com
* 편집
약간의 작은 업데이 트를 만들었 습니다. Qt 5.11.1은 여전히 기다려야 만합니다. 아직 많은 버그가 있습니다.
또한 “Toolchain 다운로드”의 단계를 자동으로 수행 할 수있는 bash 스크립트를 첨부했습니다. 나는 너에게 그다지 설명하지 않을 것이다. 누가 어떻게 작동 하는지를 알고 싶다면 Bash 스크립팅을 다루어야한다.
* 편집
약간의 수정. 그런데 독립 실행 형 응용 프로그램을 프로그래밍하고 5.11.1을 주장하려는 사람은 buildroot 2018.08.2를 사용할 수 있습니다. 나는 그것에 대해 아무 말도하고 싶지 않습니다 … 여전히 자신을 테스트하고 있지만, 빌드가 잘 작동하는 한 빨리 보충을 할 것입니다.
또한 몇 가지 걸림돌이 있습니다. 따라서 초보자를위한 것은 아닙니다.
- 첨부 파일
-
- qt5build.0.0.1.zip
- (1.27 KiB) 다운로드 154 회