이 시리즈의 첫 번째 부분에서는 Yocto 프로젝트에서 그래픽 하드웨어 가속을 사용하여 환경을 구성하고 Beaglebone Black에 Qt5가 포함 된 임베디드 Linux 배포판을 생성하는 방법을 살펴 보았습니다.
이제 우리 목표 인 Beaglebone Black에서 실행될 Qt 응용 프로그램을 개발하는 데 필요한 도구를 만들고 구성하는 방법을 배우십시오. 기본적으로 우리는 IDE Qt Creator 에서 개발 한 응용 프로그램 을 "크로스 컴파일" 하기 위해 유틸리티 와 라이브러리 가 포함 된 툴체인 이 필요 합니다 . .
툴체인 생성
이 시리즈의 첫 번째 기사에서 설명한 모든 단계를 수행하는 것이 중요합니다.
툴체인을 생성하기 위해서는 Yocto라는 환경 변수를로드하고 Qt5 용 툴체인을 빌드하도록 지시해야합니다.
| cd ~/yocto . poky-daisy/oe-init-build-env build-daisy bitbake meta-toolchain-qt5 |
설치 프로그램에서 생성 된 툴 체인은 다음 위치에서 구할 수 있습니다.
~/yocto/build-daisy/tmp/deploy/sdk/
Qt5 응용 프로그램을 빌드하고 Qt를 사용하지 않는 Linux 응용 프로그램을 제공합니다.
Toolchain 설치
제안 된 기본 경로에 install 옵션을 사용하여 스크립트를 실행 해 봅시다.
| # Para Host Linux 64bits ~/yocto/build-daisy/tmp/deploy/sdk/poky-eglibc-x86_64-meta-toolchain-qt5-cortexa8t2hf-vfp-neon-toolchain-1.6.2.sh # Para Host Linux 32bits ~/yocto/build-daisy/tmp/deploy/sdk/poky-eglibc-i686-meta-toolchain-qt5-cortexa8t2hf-vfp-neon-toolchain-1.6.2.sh |
우리의 툴 체인을 설치 한 후에 사용할 수 있습니다 : /opt/poky/1.6.2/
.
Qt Creator 설치하기
3.2.2 버전을 다운로드하여 표준 권장 옵션을 사용하여 설치하십시오.
| # Para Host Linux 64bits: wget http://download.qt-project.org/official_releases/qtcreator/3.2/3.2.2/qt-creator-opensource-linux-x86_64-3.2.2.run -P ~/Downloads # Para Host Linux 32bits: wget http://download.qt-project.org/official_releases/qtcreator/3.2/3.2.2/qt-creator-opensource-linux-x86-3.2.2.run -P ~/Downloads # Executando o Instalador # Host 64bits chmod +x ~/Downloads/qt-creator-opensource-linux-x86_64-3.2.2.run ~/Downloads/qt-creator-opensource-linux-x86_64-3.2.2.run # Host 32bits chmod +x ~/Downloads/qt-creator-opensource-linux-x86-3.2.2.run ~/Downloads/qt-creator-opensource-linux-x86-3.2.2.run |
Qt Creator 구성하기
우리가 생성하는 툴체인을 사용하여 Qt Creator에 필요한 설정을 할 것입니다. 프로그램이 열려 있으면 닫습니다.
우선 Qt Creator 시작 스크립트에 환경 변수 toolchain을 추가하십시오. 이렇게하려면 파일의 첫 번째 줄 아래에 내용을 추가하십시오. ~/qtcreator-3.2.2/bin/qtcreator.sh.
| source /opt/poky/1.6.2/environment-setup-cortexa8t2hf-vfp-neon-poky-linux-gnueabi |
파일의 최종 결과는 다음과 ~/qtcreator-3.2.2/bin/qtcreator.sh.
같아야합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | source /opt/poky/1.6.2/environment-setup-cortexa8t2hf-vfp-neon-poky-linux-gnueabi #! /bin/sh makeAbsolute() { case $1 in /*) # already absolute, return it echo "$1" ;; *) # relative, prepend $2 made absolute echo `makeAbsolute "$2" "$PWD"`/"$1" | sed 's,/\.$,,' ;; esac } me=`which "$0"` # Search $PATH if necessary if test -L "$me"; then # Try readlink(1) readlink=`type readlink 2>/dev/null` || readlink= if test -n "$readlink"; then # We have readlink(1), so we can use it. Assuming GNU readlink (for -f). me=`readlink -nf "$me"` else # No readlink(1), so let's try ls -l me=`ls -l "$me" | sed 's/^.*-> //'` base=`dirname "$me"` me=`makeAbsolute "$me" "$base"` fi fi bindir=`dirname "$me"` libdir=`cd "$bindir/../lib" ; pwd` LD_LIBRARY_PATH=$libdir:$libdir/qtcreator${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH exec "$bindir/qtcreator" ${1+"$@"} |
이제 Qt Creator를 실행 해 봅시다. 항상 프로그램을 열 때 다음 명령 을 사용해야 하는 점이 중요합니다. 그렇지 않으면 Qt Creator가 생성 된 툴체인과 제대로 작동하지 않습니다.
| ~/qtcreator-3.2.2/bin/qtcreator.sh |
아래 그림은 응용 프로그램의 홈 화면을 보여줍니다.
이제 목표 (Beaglebone Black) 및 툴 체인 정보를 포함하는 Kit를 만듭니다. 아래 단계를 따르십시오.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 1) Menu "Tools"-> Submenu "Options" 2) Opção "Build & Run" -> Aba "Compilers" ->Botão "Add" -> Opção "GCC" Name: Poky G++ -> Apply Compiler path: /opt/poky/1.6.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++ Botão "Apply" 3) Opção "Build & Run" -> Aba "Debuggers" -> Botão "Add" Name: Poky GDB Path: /opt/poky/1.6.2/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb Botão "Apply" 4) Opção "Build & Run" -> Aba "Qt Versions" -> Botão "Add" Filename: /opt/poky/1.6.2/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake Version Name: Qt 5.3.2 (qt5) Botão "Apply" 5) Opção "Build & Run" -> Aba "Kits" -> Botão "Add" Name: BBB Device Type: Generic Linux Device Sysroot: /opt/poky/1.6.2/sysroots/cortexa8t2hf-vfp-neon-poky-linux-gnueabi/ Compiler: Poky G++ Debugger: Poky GDB Qt Version: Qt 5.3.2 (qt5) Botão "Make Default" Botão "OK" |
이 절차가 끝나면 다음과 같이 설치 화면 옵션 "Build & Run"이 있어야합니다.

응용 프로그램 컴파일
어떻게 될까요, "Hello World"응용 프로그램을 만들어 봅시다. 셸에서 다음 명령을 실행하십시오.
| mkdir ~/qt5-helloworld echo -e 'TEMPLATE = app\nTARGET = hello\nDEPENDPATH += .\nINCLUDEPATH += .\n\nQT += widgets\n\nSOURCES += hello.cpp' > ~/qt5-helloworld/helloworld.pro echo -e '#include <QApplication>\n#include <QLabel>\n\nint main(int argc, char *argv[])\n{\n QApplication app(argc, argv);\n QLabel *label = new QLabel("Hello Qt!");\n label->show();\n return app.exec();\n} ' > ~/qt5-helloworld/hello.cpp |
우리는 프로젝트 파일을 갖습니다 ~/qt5-helloworld/helloworld.pro
:
| TEMPLATE = app TARGET = hello DEPENDPATH += . INCLUDEPATH += . QT += widgets SOURCES += hello.cpp |
그리고 하나의 응용 프로그램 소스 코드 ~/qt5-helloworld/hello.cpp
:
| #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel("Hello Qt!"); label->show(); return app.exec(); } |
우리는 프로젝트를 Qt Creator로 가져올 것입니다. 이렇게하려면 "File"-> "Open File or Project"로 이동하여 ~/qt5-helloworld/helloworld.pro 파일을 선택하십시오 .
다음 화면에서 어떤 Kit가 사용되어야 하는지 표시됩니다. 이전 섹션에서 BBB Kit를 기본값으로 선택하면("Make Default) 이미 선택되어 있습니다. 마지막으로 "Set Project"를 클릭하십시오.
이제 "Build"-> "Build Project helloworld"에서 응용 프로그램을 빌드 해 봅시다.
응용 프로그램 테스트
Qt Creator에서 생성 된 ~/qt5-helloworld/build-qt5-helloworld-BBB-Debug/hello
를 USB 메모리 스틱의 루트에 복사 하십시오.
USB 메모리 스틱을 BBB에 삽입하고, Serial USB 케이블을 연결하고 엽니다.
참고 :
다른 운영 체제를 BBB의 eMMC에 설치 한 경우 microSD 슬롯 옆에 있는 스위치를 누른 상태에서 전원을 공급하십시오. 이렇게 하면 프로세서가 eMMC 대신 microSD에 포함 된 MLO 및 u-boot로 부팅이 됩니다.
HDMI 케이블을 통해 TV에 BBB를 연결,이 시리즈의 첫 번째 부분에서 생성 된 microSD 카드를 삽입 생성 된 토크로 USB 스틱을 연결하고 보드, 루트 로그인을 격려하고 다음 명령을 실행합니다 :
| echo 0 > /sys/class/graphics/fbcon/cursor_blink #Para desabilitar o cursor piscante mount /dev/sda1 /media /media/hello -platform eglfs |
우리는 그것은 EGLFS 플러그인 플랫폼을 사용하여 실행해야 Qt를 알려주는 매개 변수 "-platform eglfs"와 응용 프로그램을 실행합니다.
TV는 다음 이미지를 사용합니다.

화면의 왼쪽 구석에 " Hello Qt!" 라는 문구 가 적혀 있는지 확인 하십시오 .
결론
이 튜토리얼의 파트 1과 파트 2를 사용하여 사용자 정의 된 임베디드 리눅스 배포판을 생성 할 수 있습니다. Beaglebone Black을 위한 그래픽 하드웨어 가속 기능과 많은 복잡한 문제없이 응용 프로그램을 개발할 수 있습니다.
Qt 프로그래밍 세계에 처음 오신 분은 먼저 를 자료 읽으 십시오. 초보자를위한 Qt.
알려진 이슈
Cooking with the Yocto Project
Unraveling Yocto Project - Getting Started
BeagleBone Black + Yocto
참고 문헌
https://qt-project.org/wiki/Category:Tools::QtCreator
http://elinux.org/Beagleboard:BeagleBone_Black_Serial
https://linuxlink.timesys.com/docs/gsg/beaglebone_black#SECTION00041000000000000000
http://qt-project.org/wiki/Qt_for_beginners