Конфигурирование qtbase завершается ошибкой: «Не удалось найти спецификацию qmake». - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь кросс-скомпилировать qtbase -where-5.11.0 для Raspberry Pi 3 и настроить завершение фазы после компиляции qmake с ошибкой, приведенной ниже:

make: Nothing to be done for 'first'.
Could not find qmake spec ''.
Error processing project file: /work/qtbase-everywhere-src-5.11.0

Я делаю это внутриДокер контейнер.Вот аргументы Dockerfile

FROM ubuntu:18.04

COPY sources.list /etc/apt/

RUN apt update -q -yy && \
    apt upgrade -q -yy && \
    apt install -q -yy aptitude curl

RUN dpkg --add-architecture armhf

RUN apt install -q -yy --allow-downgrades \
        build-essential \
        linux-libc-dev:armhf=4.15.0-20.21 linux-libc-dev:amd64=4.15.0-20.21 \
        crossbuild-essential-armhf \
        libncurses5:amd64=6.1-1ubuntu1 \
        libncursesw5:amd64=6.1-1ubuntu1 \
        libtinfo5:amd64=6.1-1ubuntu1 \
        libgles2-mesa-dev:armhf \
        libpcre3-dev:armhf \
        libasound2-dev:armhf \
        libasound2-data=1.1.3-5

и configure

configure \
     -device linux-rasp-pi3-g++ \
     -examplesdir /usr/lib/qt/examples \
     -headerdir /usr/include/qt5 \
     -no-rpath \
     -nomake tests \
     -plugindir /usr/lib/qt/plugins \
     -prefix /usr \
     -v \
     -confirm-license \
     -eglfs \
     -no-cups \
     -no-iconv \
     -no-kms \
     -no-pch \
     -no-use-gold-linker \
     -no-xcb \
     -no-sql-sqlite \
     -no-sql-mysql \
     -no-sql-psql \
     -no-sql-tds \
     -no-sql-odbc \
     -no-linuxfb \
     -no-widgets \
     -opengl es2 \
     -opensource \
     -release \
     -shared \
     -system-zlib \
     -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-

Я понял, что настройка его с параметрами по умолчанию тоже не работает.Запуск только ./configure -v внутри исходного каталога приводит к той же ошибке.

Я обнаружил, что этого не происходит, когда я строю, используя образ докера на основе dockcross/linux-armhf7.

1 Ответ

0 голосов
/ 31 августа 2018

Это вызвано тем, что версия libseccomp, поставляемая с Ubuntu 18.04 (v2.3.1), не является достаточно новой, чтобы знать системный вызов statx, поэтому он не может быть внесен в белый список (для этого потребуется v2.3.3, который будетпоставляется со следующей версией Ubuntu).Qt 5.10 использует этот системный вызов в процессе сборки.

В качестве временного обходного пути вы можете добавить --security-opt seccomp:unconfined в вашу командную строку докера, но вы должны знать о последствиях безопасности и использовать это только на доверенныхДокеры контейнеров.Кроме того, вы можете попробовать обновить пакет libseccomp2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...