С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Fon Eberkopff
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Сборка из исходников Qt 5.9.4. и QtCreator 4.5.1 на Jetson TX1

Запись от Fon Eberkopff размещена 23.03.2018 в 10:58

Сборка из исходников Qt 5.9.4. и QtCreator 4.5.1 на Jetson TX1

Сама операционная система и библиотеки, которые устанавливаются через JetPack находятся на встроенном диске (16Gb eMMC 5.1 Flash Storage).

Для исходников и своих программ устанавливаем через SATA интерфейс диск SSD (он автоматически обнаруживается и монтируется).
В моём случае путь к диску выглядит вот так:
/media/nvidia/e34f1b1a-70b2-4ce6-b73f-1a3f11e68511/

На диске SSD создаём каталог Downloads.

В этот каталог скачиваем релиз Qt5.9.4 для некоммерческого использования.

Убеждаемся, что у нас установлены компилятор и система сборки:
Код:
sudo apt install build-essential cmake gcc git

Всего были испробованы 3 подхода к установке/сборке Qt на Jetson:
ВАРИАНТ 1. Устанавливаем Qt 5.5.1 из репозитория. Легко и просто.
ВАРИАНТ 2. Собираем Qt 5.9.4. БЕЗ предварительной установки на Jetson специализированных библиотек (а именно CUDA Toolkit, Compile CUDA Samples, cuDNN Package, TensorRT, Multimedia API package, OpenCv, VisionWorks Pack).
ВАРИАНТ 3. Собираем Qt 5.9.4. после предварительной установки на Jetson специализированных библиотек.

За основу для компиляции берём описания с главной страницы Qt5 на github и статьи Building Qt 5 from Git.


СБОРКА Qt 5.9.4 (ВАРИАНТ 2: БЕЗ предварительной установки специализированных библиотек)

Так получилось, что перед сборкой Qt 5.9.4. были собраны из исходников Boost 1.66 и OpenCV 3.4.1, а значит в систему уже установлено большое количество всевозможных библиотек.

Заходим в каталог qt-everywhere-opensource-src-5.9.4 на SSD и запускаем подготовку проекта к сборке:
Код:
./configure -release -opensource -confirm-license -nomake tests -nomake examples -prefix /media/nvidia/e34f1b1a-70b2-4ce6-b73f-1a3f11e68511/qt-everywhere-opensource-src-5.9.4/
-prefix /media/nvidia/e34f1b1a-70b2-4ce6-b73f-1a3f11e68511/qt-everywhere-opensource-src-5.9.4/
Путь для установки исполняемых файлов был указан в каталог сборки ради экономии пространства на встроенной флеш-памяти Jetson. Это не обязательный параметр.

После сборки внимательно смотрим вывод.
Если видим, что configure не увидел каких-то важных (нужных) библиотек, то доустанавливаем эти библиотеки из стандартного репозитория. Например, может не хватать библиотеки libjpeg-dev или каких-то других.

После добавления новых библиотек заново запускаем:
Код:
./configure -release -opensource -confirm-license -nomake tests -nomake examples -prefix /media/nvidia/e34f1b1a-70b2-4ce6-b73f-1a3f11e68511/qt-everywhere-opensource-src-5.9.4/
Следующим шагом:
Код:
make -j4
Долго компилируется (2-3 часа, а если не указать ключ -j, то около 5 часов).

Далее:
Код:
sudo make install

СБОРКА Qt 5.9.4 (ВАРИАНТ 3)

В третьем варианте сборка Qt 5.9.4. была сразу после установки специализированных библиотек через JetPack с Host PC. В этом случае компиляция Qt 5.9.4. несколько раз заканчивалась ошибками и не всегда с понятными сведениями об ошибках.

До начала сборки устанавливаем некоторые зависимости (согласно рекомендациям на странице сборки Qt и собственных пожеланий):
Код:
sudo apt install libxcb-xinerama0-dev '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev  libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev  libjpeg-dev libpng12-dev libbluetooth-dev libavcodec-dev ffmpeg
Смотрим на вопросы перед установкой и не допускаем конфликтов между установленными и новыми (чтобы не поломать специальные библиотеки от NVIDIA).
Я согласился обновить nvcc (компилятор CUDA), но до сих пор сомневаюсь, что правильно сделал.

После установки библиотек заходим в каталог qt-everywhere-opensource-src-5.9.4 и выполняем в терминале:
Код:
./configure -release -opensource -confirm-license -nomake tests -nomake examples
В этот раз без указания пути для установки исполняемых файлов. По умолчанию Qt устанавливается в /usr/local/Qt-5.9.4/

Дважды компиляция заканчивалась ошибкой. Я доустанавливал библиотеки, которые возможно могли улучшить ситуацию (они вошли в перечь библиотек выше).
В итоге всё-таки собирается.

Далее запускаем:
Код:
make -j4
Далее:
sudo make install


СБОРКА QtCreator 4.5.1

Скачиваем в каталог Downloads исходники QtCreator 4.5.1.

Тут же их распаковываем. Переходим в полученный каталог qt-creator-4.5.1

За основу для компиляции берём описания с главной страницы QtCreator на github.

Если мы сразу начнём собирать, то возникнет fatal error при попытке компиляции botan.cpp.
Ошибка известная: Allow qt-creator to build on arm aarch64.
Можно (читайте нужно) вручную внести исправления в файлы botan.cpp и botan.h, которые описаны в вышеуказанной статье.
Для тех кто не хочет лично вносить исправления прикладываю архив с двумя исправленными файлами.


Для сборки проекта используем наш новый qmake.
После внесения исправлений, находясь в каталоге qt-creator-4.5.1 запускаем:
Код:
/usr/local/Qt-5.9.4/bin/qmake -r
(Во втором варианте /media/nvidia/e34f1b1a-70b2-4ce6-b73f-1a3f11e68511/qt-everywhere-opensource-src-5.9.4/bin/qmake -r)

После сборки внимательно смотрим вывод.
Если видим, что qmake не увидел каких-то важных (нужных) библиотек, то доустанавливаем эти библиотеки из стандартного репозитория.

После добавления новых библиотек заново запускаем:
Код:
/usr/local/Qt-5.9.4/bin/qmake -r
Код:
make -j4
Код:
sudo make install
Вложения
Тип файла: 7z qtcreator_NEWbotan.7z (300.2 Кб, 40 просмотров)
Размещено в Без категории
Просмотров 557 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru