Я пытаюсь скомпилировать Qt5 из исходников, используя файл qt-everywhere-opensource-src-5.9.6.tar.xz
. Я извлекаю файл и создаю следующий qmake.conf
:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
TARGET_PLATFORM = unix
TEMPLATE = app
CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index
QT += core gui
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
include(../../common/qws.conf)
# Compiler Flags to take advantage of the ARM architecture
QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard
# modifications to g++.conf
QMAKE_CC = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
# modifications to linux.conf
QMAKE_AR = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabi-objcopy
QMAKE_STRIP = /{homedir}/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabi-strip
load(qt_config)
Затем я захожу в извлеченную папку qt и вызываю ./configure
со следующими параметрами:
./configure -v -opensource -confirm-license -prefix /{homedir}/qt-everywhere-opensource-src-5.9.6 -xplatform linux-arm-gnueabihf-g++ -embedded arm -little-endian -host-little-endian -no-qt3support -nomake demos -nomake examples -qt-gfx-linuxfb -qt-gfx-qvfb -qt-gfx-vnc -no-accessibility
Он работает какое-то время, а затем выдает мне эту ошибку:
Info: creating super cache file /{homedir}/qt-everywhere-opensource-src-5.9.6/.qmake.super
ERROR: Invalid command line parameter 'arm'.
Это из-за опции -embedded arm
? Я вижу, что он используется на многих страницах, поэтому я не уверен, почему я получаю эту ошибку. Пожалуйста помоги.
@Felix, это BBB, это чип ARM.
Эта вики-запись предназначена для малины, но командная строка configure (шаг 10) должна работать для вашего устройства с некоторыми настройками. Попробуйте это и найдите недостающие параметры. wiki.qt.io/RaspberryPi2EGLFS#Step_by_step
Вы, наверное, видите примеры кросс-компиляции Qt4. В Qt4 была опция «встроенная рука», а в Qt5 ее нет.
Для какого устройства вы собираете?