BB & Qt — Сборка Qt 5

Сборка Qt 5 для Debian и BeagleBone.

Данный материал основан на "Bare Metal Qt 5.2 on BeagleBone Black Ubuntu" Part 1, Part 2.

Внимание: для Qt 4.7, 4.8 процедура настройки другая. Её можно посмотреть, например, здесь: Qt на BeagleBoard / BlueShark.

С официального сайта берём qt-everywhere-opensource-src-5.2.1.tar.xz.\ Распаковываем в /home/user/Qt/qt-everywhere-opensource-src-5.2.1-armv7 .

Настраиваем mkspecs.

$ cd /home/user/Qt/qt-everywhere-opensource-src-5.2.1-armv7/qtbase/mkspecs/devices
$ cp -r linux-beagleboard-g++ linux-beaglebone-g++
$ nano linux-beaglebone-g++/qmake.conf

Меняем во флагах компилятора

-mfloat-abi=softfp

на

-mfloat-abi=hard

В конце файла, перед строкой load(qt_config), добавляем строки для Tslib:

QMAKE_INCDIR += /usr/share/tslib-armv7/include
QMAKE_LIBDIR += /usr/share/tslib-armv7/lib
QMAKE_RPATHDIR += /usr/share/tslib-armv7/lib

И для ICU:

QMAKE_INCDIR += /usr/share/icu-4c-53.1-armv7/include
QMAKE_LIBDIR += /usr/share/icu-4c-53.1-armv7/lib
QMAKE_RPATHDIR += /usr/share/icu-4c-53.1-armv7/lib

Далее:

$ cd /home/user/Qt/qt-everywhere-opensource-src-5.2.1-armv7/qtbase/mkspecs
$ cp -r linux-arm-gnueabi-g++ linux-arm-gnueabihf-g++
$ nano linux-arm-gnueabihf-g++/qmake.conf

Меняем путь к компилятору:

# modifications to g++.conf
QMAKE_CC         = arm-linux-gnueabi-gcc
QMAKE_CXX        = arm-linux-gnueabi-g++
QMAKE_LINK       = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++

на

# modifications to g++.conf
CROSS_TOOL       = /home/user/beaglebone/gcc-linaro-arm-linux-gnueabi-4.8-2014.03_linux/bin/arm-linux-gnueabihf
QMAKE_CC         = $$CROSS_TOOL-gcc
QMAKE_CXX        = $$CROSS_TOOL-g++
QMAKE_LINK       = $$CROSS_TOOL-g++
QMAKE_LINK_SHLIB = $$CROSS_TOOL-g++

Конфигурация Qt 5.

Создаём скрипт конфигурации:

$ cd /home/user/Qt/qt-everywhere-opensource-src-5.2.1-armv7
$ touch ./start-conf.sh
$ chmod +x ./start-conf.sh
$ nano ./start-conf.sh

Пишем в нём:

./configure -prefix /usr/share/qt-5.2.1-armv7 -v -release -opensource -confirm-license -no-largefile -no-accessibility -nomake examples -nomake tests -qt-sql-sqlite -plugin-sql-sqlite -qt-zlib -no-gif -qt-libpng -qt-libjpeg -no-nis -no-eglfs -qpa linuxfb -no-cups -tslib -icu -xplatform linux-arm-gnueabihf-g++ -device linux-beaglebone-g++ -device-option CROSS_COMPILE=/home/user/beaglebone/gcc-linaro-arm-linux-gnueabi-4.8-2014.03_linux/bin/arm-linux-gnueabihf- -qt-pcre

Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X). Дополнительные опции можно посмотреть по команде:

$ ./configure --help

Запускаем конфигурацию, собираем и устанавливаем:

$ ./start-conf.sh
$ make
$ sudo make install

Копируем каталог /usr/share/qt-5.2.1-armv7 на BeagleBone.