12,984
回編集
588行目: | 588行目: | ||
これは、Qtライブラリを使用するプログラムをビルドする場合は、rccファイルが必要となるためである。<br> | これは、Qtライブラリを使用するプログラムをビルドする場合は、rccファイルが必要となるためである。<br> | ||
cp /<Qtのソースコードがあるディレクトリ>/qtbase/bin/rcc /<ホストPCで使用するQtライブラリを配置するディレクトリ>/bin | cp /<Qtのソースコードがあるディレクトリ>/qtbase/bin/rcc /<ホストPCで使用するQtライブラリを配置するディレクトリ>/bin | ||
<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メディアのサポートが追加される。 | |||
|} | |||
</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 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> | ||