Автор Тема: Сборка Qt с помощью кросс-компиляции  (Прочитано 50 раз)

Оффлайн Dmitry

Сборка Qt с помощью кросс-компиляции
« : Ноябрь 14, 2019, 03:13:11 pm »
Всем привет!

Пытаюсь собрать Qt 5.13.2  помощью кросс компиляции. За основу взял эту статью: https://visuale.ru/blog/krosskompilyatsiya-qt-5-10-dlya-raspberry-pi3

На плату накатил Armbian Buster, взятый тут: https://www.armbian.com/orange-pi-zero/

g++ -v
Говорит gcc version 8.3.0 (Debian 8.3.0-6)

Скачал Linaro toolchain gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

Синхронизовал sysroot с апельсинкой, как написано в статье.

Скачал исходники Qt

Пытаюсь его сконфигурировать.
И тут вопрос: я для конфигурации использую следующую команду:
  ./configure -skip wayland -skip script -no-xcb -no-pch -no-use-gold-linker -no-opengl -nomake tests -nomake examples -reduce-exports -release -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot ~/orange_zero/sysroot -opensource -confirm-license -make libs -prefix ~/orange_zero/qt5.13.2orange -extprefix ~/orange_zero/qt5.13.2orange -hostprefix ~/orange_zero/qt5.13.2 -v

Но в итоге на выходе имею: ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.
В качестве -device я указываю linux-rasp-pi-g++ (где-то подсмотрел). Но сдается мне, что это не правильно. В исходниках Qt, в папке qtbase/mkspecs/devices нет отдельной папки с конфигурацией на Orange.

Что нужно указать в параметрах конфигурации чтобы собрать Qt под Orange Pi Zero?


Полный вывод ошибки:
This is the Qt Open Source Edition.

You have already accepted the terms of the Open Source license.

Running configuration tests...

+ /home/dmitry/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -dumpmachine
> arm-linux-gnueabihf
Checking for valid makespec...
+ cd /home/dmitry/orange_zero/Qt5.13.2-src/config.tests/verifyspec && /home/dmitry/orange_zero/Qt5.13.2-src/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/home/dmitry/orange_zero/sysroot" "QMAKE_CXXFLAGS += --sysroot=/home/dmitry/orange_zero/sysroot" "QMAKE_LFLAGS += --sysroot=/home/dmitry/orange_zero/sysroot" -early "CONFIG += cross_compile" /home/dmitry/orange_zero/Qt5.13.2-src/qtbase/config.tests/verifyspec
+ cd /home/dmitry/orange_zero/Qt5.13.2-src/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make
> rm -f verifyspec.o
> rm -f *~ core *.core
> /home/dmitry/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/dmitry/orange_zero/sysroot -O2 -w -fPIC  -I/home/dmitry/orange_zero/Qt5.13.2-src/qtbase/config.tests/verifyspec -I. -I/home/dmitry/orange_zero/Qt5.13.2-src/qtbase/mkspecs/devices/linux-rasp-pi-g++ -o verifyspec.o /home/dmitry/orange_zero/Qt5.13.2-src/qtbase/config.tests/verifyspec/verifyspec.cpp
> /home/dmitry/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/dmitry/orange_zero/sysroot -Wl,-O1 -Wl,-rpath-link,/home/dmitry/orange_zero/sysroot/opt/vc/lib -Wl,-rpath-link,/home/dmitry/orange_zero/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/dmitry/orange_zero/sysroot/lib/arm-linux-gnueabihf -o verifyspec verifyspec.o     
> /home/dmitry/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find crt1.o: No such file or directory
> /home/dmitry/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find crti.o: No such file or directory
> /home/dmitry/orange_zero/tools/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lm
> collect2: error: ld returned 1 exit status
> Makefile:68: recipe for target 'verifyspec' failed
> make: *** [verifyspec] Error 1
Note: Also available for Linux: linux-clang linux-icc

ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.


« Последнее редактирование: Ноябрь 14, 2019, 03:26:51 pm от Dmitry »