QtWebEngine 到嵌入式 Linux 交叉编译失败



我正在尝试将我的桌面项目交叉编译为树莓派。我的项目使用 Qt 5.6 和 QtWebEngine。 我遵循了本指南:RaspberryPi2EGLFS 它在没有使用网络引擎的部分的情况下运行,但我无法使用网络引擎模块,因为我无法编译它。它给了我这个:

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。

但是,我知道一个事实,它可以为 Qt 5.7.1 和 Qt5.8.0 进行交叉编译(我在 Ubuntu 16 上这样做),但前提是您为设备"linux-rasp-pi2-g++"而不是"linux-rpi3-g++"配置。它不能为 Qt5.9.0 构建。

请注意,Qt5.8.0 在 Pi 上的 OpenGL 性能很差。Qt5.7 或 5.9 不存在此问题。

再说一次 - 无论如何,它对 Pi 来说可能太重了。

最新更新