2017-05-14 121 views
0

我想交叉编译我的桌面项目到树莓派。我的项目使用Qt 5.6和QtWebEngine。 我遵循本指南:RaspberryPi2EGLFS 它运行时没有使用web引擎,但我无法使用WebEngine模块,因为我无法编译它。它给我这个:QtWebEngine嵌入式linux交叉编译失败

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 -- 

我怎样才能解决这个问题?或者我怎么可以关闭webengine的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 -- 

所以还是不能编译。

回答

0

可能不是你想听到的,但是QWebEngine没有在Pi上正式支持。

https://doc.qt.io/qt-5/qtwebengine-platform-notes.html#all-platforms

“在Linux中,锵或GCC版本4.7或更高是必需的。支持的配置有linux-g ++以及Linux的铛”。但是,我知道一个事实,它可以在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来说可能太重了。