我试图将我的桌面项目交叉编译为覆盆子pi。我的项目使用Qt 5.6和QtWebEngine。 我遵循了这个指南:RaspberryPi2EGLFS 它运行时没有使用webengine的部件,但我不能使用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 --
所以它仍然无法编译。
答案 0 :(得分:0)
可能不是您想听的内容,但Pi上没有正式支持QWebEngine。
从 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-克++"而不是" linux-rpi3-g ++"。它不能为Qt5.9.0构建。
请注意,Qt5.8.0在Pi上的OpenGL性能不佳。 Qt5.7或5.9不存在此问题。
然后再说 - 无论如何它对于Pi来说可能太重了。