Я пытаюсь кросс-компилировать мой настольный проект на Raspberry Pi. Мои проекты используют Qt 5.6 и QtWebEngine.
Я следовал этому руководству: RaspberryPi2EGLFS
Он работает без частей, использующих веб-движок, но я не могу использовать модуль WebEngine, потому что не могу его скомпилировать. Это дает мне это:
gyp: Undefined variable clang_dir in /Users/aeron/raspi/qtwebengine/src/core/core_generated.gyp
gyp: Undefined variable clang_dir in /Users/aeron/raspi/qtwebengine/src/core/resources/resources.gyp
Project ERROR: -- running gyp_qtwebengine failed --
Я уже пытался вручную вставить пустую переменную, но эти две строки — лишь вершина айсберга.
Я тоже получаю эту ошибку, когда беру полный репозиторий qt5 и пытаюсь скомпилировать его.
Обновить
Я добился определенного прогресса. С редактированием qtwebengine/src/core/config/embedded_linux.pri
Мне удалось решить проблему clang_dir. Я только что добавил строку clang_dir=0
в конец списка переменных.
Но есть еще одна проблема того же рода:
gyp: Undefined variable c_sources in /Users/aeron/raspi/qtwebengine/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp
Project ERROR: -- running gyp_qtwebengine failed --
Как я могу решить это? Или как я могу отключить ffmpeg часть веб-двигателя, у меня нет планов использовать его в любом случае …
Обновление 2
Теперь, кажется, я решил проблему с ffmpeg. Способ: в файле src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp
Я установил для use_system_ffmpeg значение 1.
Теперь у меня есть новая проблема:
Updating projects from gyp files...
gyp: Dependency '/Users/aeron/raspi/qtwebengine/src/3rdparty/chromium/base/base.gyp:symbolize#host' not found while trying to load target /Users/aeron/raspi/qtwebengine/src/3rdparty/chromium/base/base.gyp:base#host
Project ERROR: -- running gyp_qtwebengine failed --
Так что все равно не компилируется.
Вероятно, не то, что вы хотите услышать, но QWebEngine официально не поддерживается на Pi.
От
https://doc.qt.io/qt-5/qtwebengine-platform-notes.html#all-platforms
«В Linux требуется Clang или GCC версии 4.7 или более поздней. Поддерживаются следующие конфигурации: linux-g ++ и linux-clang».
Тем не менее, я точно знаю, что он может быть скомпилирован (я сделал это на Ubuntu 16) для Qt 5.7.1 и Qt5.8.0, но только если вы сконфигурируете для устройства «linux-rasp-pi2-g ++», а не для «linux-rpi3-g ++». Это НЕ МОЖЕТ быть построено для Qt5.9.0.
Обратите внимание, что Qt5.8.0 имеет плохую производительность OpenGL на Pi. Эта проблема отсутствует в Qt5.7 или 5.9.
Опять же — это, наверное, слишком тяжело для Пи.
Других решений пока нет …