「インストール - Qt6 Raspberry Pi」の版間の差分

837行目: 837行目:
   
   
  # ...略
  # ...略
<br><br>
== QtWebEngineのビルドおよびインストール ==
上記のセクションでは、QtWebEngineモジュールを無効にしている。<br>
これは、QtWebEngineのビルドには多くの時間とディスクスペースが必要なためである。<br>
<br>
勿論、QtWebEngineとQtを同時にビルドすることも可能であるが、ビルドに失敗する場合はビルド全体が失敗したことになるため、<br>
まず、ベースとなるQt 5を個別にビルドした後、QtWebEngineを個別にビルドすることを推奨する。<br>
<br>
==== 依存関係のライブラリのインストール ====
<center>
{| class="wikitable" style="background-color:#fefefe;"
|+ 必須およびオプションのライブラリ
|-
! style="background-color:#00ffff;" | 
! style="background-color:#00ffff;" | ライブラリ名
! style="background-color:#00ffff;" | 備考
|-
| 必須 || flex bison gperf libre2-dev libnss3-dev ||
|-
| X11対応に必要 || libdrm-dev libxdamage-dev || XCB / X11を使用する場合、<br>これらのライブラリが必要である。
|-
| オプション || libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev<br>libevent-dev libprotobuf-dev protobuf-compiler libwebp-dev libpoppler-cpp-dev || 追加サポートとして便利である。
|-
| (オプション)<br>システム構築ツール || ninja-build re2c || ninjaビルドツールを使用することで、<br>ビルドを高速化できることがある。
|-
| 使用できないライブラリ || libopus-dev libvpx-dev || OpusとVPXメディアのサポートが追加されるが、<br>Raspbian busterで利用するには古すぎる。
|}
</center>
<br>
==== QtWebEngineのダウンロード ====
Qtの公式Webサイトから、QtWebEngineをダウンロードする。<br>
https://download.qt.io/official_releases/qt/x.x/x.x.x/submodules/qtwebengine-everywhere-src-x.x.x.tar.xz<br>
<br>
==== QtWebEngineのビルド設定 ====
ダウンロードしたQtWebEngineのビルド設定を編集する。<br>
<br>
QtWebEngineでのジャンボビルドを無効化する。<br>
標準のジャンボビルドシステムでは、コンパイル時に不明のエラーが出力されるため、無効にする。<br>
sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' /<QtWebEngineのソースコードがあるディレクトリ>/src/buildtools/config/common.pri
<br>
==== QtWebEngineのビルドとインストール ====
次に、QtWebEngineのConfigureスクリプトを実行する。<br>
/opt/Qt/5.15.2/bin/qmake /<QtWebEngineのソースコードがあるディレクトリ> -- -no-webengine-geolocation
<br>
正常に終了する時、以下のようなサマリが表示される。<br>
Qt WebEngine:
  Embedded build ......................... no
  Full debug information ................. no
  Pepper Plugins ......................... yes
  Printing and PDF ....................... yes
  Proprietary Codecs ..................... no
  Spellchecker ........................... yes
  Native Spellchecker .................... no
  WebRTC ................................. yes
  Use System Ninja ....................... yes
  Geolocation ............................ no
  WebChannel support ..................... yes
  Use v8 snapshot ........................ yes
  Kerberos Authentication ................ no
  Support qpa-xcb ........................ yes
  Use ALSA ............................... yes
  Use PulseAudio ......................... no
  Optional system libraries used:
    re2 .................................. yes
    icu .................................. no
    libwebp, libwebpmux and libwebpdemux . no
    opus ................................. no
    ffmpeg ............................... no
    libvpx ............................... no
    snappy ............................... no
    glib ................................. yes
    zlib ................................. yes
    minizip .............................. yes
    libevent ............................. yes
    jsoncpp .............................. yes
    protobuf ............................. yes
    libxml2 and libxslt .................. yes
    lcms2 ................................ yes
    png .................................. yes
    JPEG ................................. yes
    harfbuzz ............................. no
    freetype ............................. yes
  Required system libraries:
    fontconfig ........................... yes
    dbus ................................. yes
    nss .................................. yes
    khr .................................. yes
    glibc ................................ yes
  Required system libraries for qpa-xcb:
    x11 .................................. yes
    libdrm ............................... yes
    xcomposite ........................... yes
    xcursor .............................. yes
    xi ................................... yes
    xtst ................................. yes
<br>
最後に、QtWebEngineをビルドする。<br>
もし、ビルドするPCのメモリが8[GB]以下の場合、NINJAJOBSを4以下にして、Ninjaの並列ビルドの量を制限する必要がある。<br>
make -j $(nproc)
または
make -j 4 NINJAJOBS=-j4
make install
<br>
==== QtWebEngineのビルド時に発生する問題 ====
下表は、QtWebEngineで見つかった問題とビルドの問題を集めたものである。<br>
<center>
{| class="wikitable" style="background-color:#fefefe;"
|+ ビルド時の問題点と解決策
|-
! style="background-color:#00ffff;" | QtWebEngineのバージョン
! style="background-color:#00ffff;" | 問題
! style="background-color:#00ffff;" | 解決策
|-
| 5.15.2 || Internal Compiler Error, gcc 8.30<br><br>internal compiler error: in convert_move, at expr.c:218<br> static void exec_ops(const Op* ops, const void** args, || [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96206 GCC Bugzilla bug report]<br><br>Build for ARMv7<br>Patch the source to disable optimization
|-
| 5.15.2 || fatal error: xcb/dri3.h: No such file or directory || 以下のライブラリをインストールする。<br><code>sudo apt-get install libxcb-dri3-dev</code>
|-
| 5.15.2 || Broadcom EGLを使用するQtのビルドに失敗する。<br><br>qtwebengine-everywhere-src-x.x.x/src/3rdparty/chromium/ui/gl/gl_bindings_autogen_egl.h:201:5:<br>error: ‘EGLDeviceEXT’ has not been declared || Broadcom EGLの代わりに、<br>VC4 / KMSを使用してビルドする。
|}
</center>
<br><br>
<br><br>