2017-05-14 120 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來說可能太重了。