「インストール - Qt5」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(文字列「presire220a-22」を「presire2-22」に置換)
 
(同じ利用者による、間の323版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
ここでは、Qt 5.14のインストール方法を記載する。<br>
Qtは、デスクトップ、組み込み、モバイルプラットフォーム向けのソフトウェアやユーザーインターフェイスの作成を効率化するために設計されたツールを備えた完全な開発フレームワークである。<br>
<br>
Qt 5.15 LTSのサポート期間は、Qtレガシーライセンスは2023年5月26日まで、Qtサブスクリプションライセンスは2025年5月26日までである。<br>
<br>
Qtライセンスを購入するには、http://www.qt.io/download/ を参照すること。<br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! colspan="3" style="background-color:#44CC99;" | 参考書
|- style="text-align: center;"
| <center><html><a href="https://www.amazon.co.jp/Mastering-Qt-stunning-cross-platform-applications-ebook/dp/B07DH9YK9Q?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-1&linkCode=ll1&tag=presire2-22&linkId=2118a0260e6e51aa7f7440827dee4266&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/71ZdxoixPvL._SL1500_.jpg" ></a></html><br>[https://www.amazon.co.jp/Mastering-Qt-stunning-cross-platform-applications-ebook/dp/B07DH9YK9Q?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-1&linkCode=ll1&tag=presire2-22&linkId=2118a0260e6e51aa7f7440827dee4266&language=ja_JP&ref_=as_li_ss_tl Mastering Qt 5<br>C++, Qt Widgets, QMLを使用したクロスプラットフォームアプリケーションの作成]</center>
| <center><html><a href="https://www.amazon.co.jp/Hands-Mobile-Embedded-Development-Raspberry-ebook/dp/B07RH6QM95?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-6&linkCode=ll1&tag=presire2-22&linkId=fabbe4470bf7cb690cadc2cf00e7af96&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/91V16o+L03L._SL1500_.jpg" ></a></html><br>[https://www.amazon.co.jp/Hands-Mobile-Embedded-Development-Raspberry-ebook/dp/B07RH6QM95?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-6&linkCode=ll1&tag=presire2-22&linkId=fabbe4470bf7cb690cadc2cf00e7af96&language=ja_JP&ref_=as_li_ss_tl Hands-On Mobile and Embedded Development with Qt 5<br>C++/QtでAndroid, iOS, Raspberry Pi用のアプリケーションを作成]</center>
| <center><html><a href="https://www.amazon.co.jp/Qt5-GUI-Programming-Cookbook-cross-platform/dp/1789803829?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-14&linkCode=ll1&tag=presire2-22&linkId=981d01e080c07e69b683bbd3eee91fd9&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/717s6aji8ZL._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Qt5-GUI-Programming-Cookbook-cross-platform/dp/1789803829?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-14&linkCode=ll1&tag=presire2-22&linkId=981d01e080c07e69b683bbd3eee91fd9&language=ja_JP&ref_=as_li_ss_tl Qt5 C++ GUI Programming Cookbook<br>Qt5でクロスプラットフォームのアプリケーションの作成]</center>
|}
</center>
<br><br>
 
== Qt ライセンス ==
Qtは、様々なユーザのニーズに対応できるよう、様々なライセンスオプションが用意されている。<br>
<br>
商用ライセンスでライセンスされたQtは、第三者とソースコードを共有したくない場合やGNU LGPL version 3の条項に準拠できない場合、プロプライエタリ / 商用ソフトウェアの開発に適している。<br>
LGPL version 3の下でライセンスされたQtは、GNU LGPL version 3またはGNU GPL version 3の条項と条件に従うことができれば、Qtアプリケーションの開発に適している。<br>
<br>
Qtマーケットプレイスライセンス契約に基づいてライセンスされたQtコンポーネントは、<br>
商用またはGNU LGPL version 3またはGNU GPL version 3の条件に基づいてライセンスされたQtソフトウェアコンポーネントと共通のQtアプリケーションの開発に適している。<br>
<br>
Qtには、元の開発者から特定のオープンソースライセンスの下でライセンスされているサードパーティのコードも含まれている。<br>
また、Qtのサンプルは、The Qt Companyの商用ライセンスおよびBSD 3条項ライセンスの下で入手可能である。<br>
<br>
Qtライセンスの概要については、http://qt.io/licensing/ を参照すること。<br>
<br><br>
<br><br>


7行目: 37行目:
Qtの依存関係のライブラリをインストールする。<br>
Qtの依存関係のライブラリをインストールする。<br>
これらのライブラリは不要な可能性がある。(調査中)<br>
これらのライブラリは不要な可能性がある。(調査中)<br>
# RHEL
sudo dnf install mesa-libOSMesa-devel
# SUSE
  sudo zypper install Mesa-devel Mesa-KHR-devel
  sudo zypper install Mesa-devel Mesa-KHR-devel
  または
  # または
  sudo zypper install Mesa-KHR-devel Mesa-devel Mesa-dri-devel Mesa-libEGL-devel Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel \
  sudo zypper install Mesa-KHR-devel Mesa-devel Mesa-dri-devel Mesa-libEGL-devel Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel \
                     Mesa-libglapi-devel kbproto-devel libOSMesa-devel libOSMesa8 libX11-devel libXau-devel libdrm-devel libgbm-devel \
                     Mesa-libglapi-devel kbproto-devel libOSMesa-devel libOSMesa8 libX11-devel libXau-devel libdrm-devel libgbm-devel \
                     libglvnd-devel libxcb-devel libxcb-screensaver0 libxcb-xf86dri0 libxcb-xtest0 libxcb-xvmc0 pthread-stubs-devel xproto-devel
                     libglvnd-devel libxcb-devel libxcb-screensaver0 libxcb-xf86dri0 libxcb-xtest0 libxcb-xvmc0 pthread-stubs-devel xproto-devel
<br>
<br>
==== Qtのダウンロード ====
==== Qtのダウンロード ====
最新版のQtをダウンロードするため、以下のコマンドを実行する。<br>
最新版のQtをダウンロードするため、以下のコマンドを実行する。<br>
26行目: 59行目:
<br>
<br>
次に、GCCおよびmake、付随するライブラリをインストールする。<br>
次に、GCCおよびmake、付随するライブラリをインストールする。<br>
  # CentOS
  # RHEL
  sudo yum groupinstall "Development tools"
  sudo dnf groupinstall "Development tools"
   
   
  # SUSE
  # SUSE
36行目: 69行目:
<br>
<br>
Qtのインストール画面に従って、インストールを実行する。<br>
Qtのインストール画面に従って、インストールを実行する。<br>
<br>
Qtをインストールした後、必要ならば、以下のコマンドを実行する。<br>
<u>これは、<code>pkg-config</code>コマンドが指すディレクトリを変更する設定である。</u><br>
cd /<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib
cp ./pkgconfig ./pkgconfig_org
cd /<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib/pkgconfig
sed -i -e "s/prefix=\/home\/qt\/work\/install/prefix=\/<Qtのインストールディレクトリ>\/<Qtのバージョン>\/gcc_64/g" ./*
<br><br>
<br><br>


71行目: 112行目:
==== 依存関係のライブラリのインストール ====
==== 依存関係のライブラリのインストール ====
Qtのソースコードをコンパイルするために必要な依存関係のライブラリをインストールする。<br>
Qtのソースコードをコンパイルするために必要な依存関係のライブラリをインストールする。<br>
  sudo zypper install git-core gcc-c++ make python3 perl \
  sudo zypper install flex bison gperf git-core gcc-c++ make cmake unzip pkg-config python3 ruby perl libicu-devel \
                     xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel \
                     glib2-devel dbus-1-devel fontconfig-devel libfontenc-devel libproxy-devel assimp-devel \
                     xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel libxkbcommon-devel libXi-devel \
                     mozilla-nspr-devel nodejs16 nodejs16-devel re2-devel glproto-devel snappy-devel libSDL2-devel \
                    flex bison gperf libicu-devel ruby \
                     libinput-devel libhidapi-devel mtdev-devel tslib-devel \
                     alsa-devel dbus-1-devel libXcomposite-devel libXcursor-devel libXrandr-devel libXtst-devel mozilla-nspr-devel \
                     Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel Mesa-libGLESv3-devel Mesa-libEGL-devel \
                     mozilla-nss-devel gperf bison nodejs10 nodejs10-devel \
                    wayland-devel wayland-protocols-devel
                    pulseaudio-libs-devel alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel wayland-devel
<br>
<br>
* fontconfig-devel
SUSEにおいて、マルチメディア関連やBluetooth等を使用したソフトウェアを開発する場合、下表に示すパッケージをインストールする。<br>
* libfontenc-devel
<center>
* libXft-devel
{| class="wikitable" | style="background-color:#fefefe;"
* libx11-devel
|+ SUSE向け その他のライブラリ(オプション)
* libxcb-devel
|-
* libXext-devel
! style="background-color:#66CCFF;" | 機能
* libXfixes-devel
! style="background-color:#66CCFF;" | インストールするライブラリ
* libXrender-devel
! style="background-color:#66CCFF;" | configureスクリプトのオプション
* libxcb-devel
|-
* Mesa-libGL-devel  
| Bluetooth || bluez bluez-devel bluez-tools ||
* xcb-util-keysyms-devel  
|-
* xcb-util-image-devel  
| 画像 || openjpeg-devel openjpeg2-devel libjpeg62-devel libpng12-devel libpng16-devel<br>libtiff-devel libmng-devel libwebp-devel libjasper-devel
* xcb-util-wm-devel
|
* libXfixes-devel
|-
* xcb-util-renderutil-devel
| マルチメディア || ffmpeg-4-libavdevice-devel ffmpeg-4-private-devel<br>gstreamer-devel gstreamermm-devel gstreamer-plugins-base-devel<br>gstreamer-plugins-bad-devel gstreamer-plugins-rs-devel gstreamer-devtools-devel<br>gnome-video-effects-devel gstreamer-editing-services-devel
* libXinerama-devel
|
* libxcb-shm0-dev
|-
* libxcb-sync0-dev
| ALSAオーディオ || alsa-devel alsa-lib-devel ||
* libxcb-shape0-dev
|-
| Pulseオーディオ || libpulse-devel pulseaudio-qt-devel ||
|-
| OpenAL || openal-soft-devel ||
|-
| GPS || libgypsy-devel ||
|-
| Text to Speech || festival-devel libspeechd-devel ||
|-
| シリアルポート || libserialport-devel ||
|-
| センサ || libsensors4-devel ||
|-
| データベース || postgresql14-devel postgresql14-server-devel (PostgreSQL)<br>libmariadb-devel libmariadbd-devel libmariadbprivate (MariaDB)<br>unixODBC-devel (ODBC)<br>sqlite3-devel (SQLite)
|
|-
| プリンタ || cups-devel ||
|-
| X11 || libXft-devel libX11-devel libxcb-devel libXext-devel libXfixes-devel libXrender-devel<br>libxcb-devel xcb-util-keysyms-devel xcb-util-image-devel xcb-util-wm-devel libXfixes-devel<br>xcb-util-renderutil-devel libXinerama-devel libXcomposite-devel libXcursor-devel<br>libXrandr-devel libXtst-devel xcb-proto-devel xcb-util-cursor-devel xcb-util-errors-devel<br>xcb-util-xrm-devel xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel<br>xcb-util-keysyms-devel xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel<br>libxkbcommon-devel libXi-devel libxkbfile-devel xorg-x11-util-devel xorg-x11-libs ||
|-
| X Wayland || xwayland-devel ||
|-
| WebEngine || 必須 :<br>flex bison gperf glibc-devel-static libcap-devel readline-devel mozilla-nss-devel mozilla-nspr-devel<br>libgcrypt20 libgcrypt-devel libgudev-1_0-devel ruby npm16 nodejs16-devel nodejs-common<br>libdrm-devel pciutils-devel xmlsec1-nss-devel systemd-devel libxshmfence-devel<br>libqt5-qtsvg-devel libqt5-qtsvg-private-headers-devel<br><br>オプション1 :<br>libxml2-devel libxml++-devel libxslt-devel minizip-devel jsoncpp-devel<br>liblcms2-devel libevent-devel protobuf-devel libprotobuf-c-devel<br>pipewire-devel krb5-devel<br><br>オプション2(不安定なため注意すること) :<br>libopus-devel libvpx-devel libpoppler-devel libpoppler-glib-devel
|
|-
| アクセシビリティ || at-spi2-atk-devel at-spi2-core-devel ||
|-
| SCTP || lksctp-tools-devel || -sctp
|}
</center>
<br>
* 上表のライブラリを全てインストールする場合
*: <code>sudo zypper install \</code>
*: <code>bluez bluez-devel bluez-tools \</code>
*: <code>openjpeg-devel openjpeg2-devel libjpeg62-devel libpng12-devel libpng16-devel libtiff-devel libmng-devel libwebp-devel libjasper-devel \</code>
*: <code>ffmpeg-4-libavdevice-devel ffmpeg-4-private-devel \</code>
*: <code>gstreamer-devel gstreamermm-devel gstreamer-plugins-base-devel gstreamer-plugins-bad-devel gstreamer-plugins-rs-devel gstreamer-devtools-devel \</code>
*: <code>gnome-video-effects-devel gstreamer-editing-services-devel \</code>
*: <code>alsa-devel libpulse-devel openal-soft-devel libgypsy-devel \</code>
*: <code>festival-devel libspeechd-devel \</code>
*: <code>libserialport-devel libsensors4-devel unixODBC-devel sqlite3-devel cups-devel \</code>
*: <code>libXft-devel libX11-devel libxcb-devel libXext-devel libXfixes-devel libXrender-devel libxcb-devel xcb-util-keysyms-devel xcb-util-image-devel \</code>
*: <code>xcb-util-wm-devel libXfixes-devel xcb-util-renderutil-devel libXinerama-devel libXcomposite-devel libXcursor-devel libXrandr-devel libXtst-devel \</code>
*: <code>xcb-proto-devel xcb-util-cursor-devel xcb-util-errors-devel xcb-util-xrm-devel xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel \</code>
*: <code>xcb-util-keysyms-devel xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel libxkbcommon-devel libXi-devel libxshmfence-devel \</code>
*: <code>libxkbfile-devel xorg-x11-util-devel xorg-x11-libs xwayland-devel \</code>
*: <code>at-spi2-atk-devel at-spi2-core-devel lksctp-tools-devel \</code>
*: <code>flex bison gperf libcap-devel readline-devel mozilla-nss-devel mozilla-nspr-devel libdrm-devel \</code>
*: <code>libxml2-devel libxml++-devel libxslt-devel minizip-devel jsoncpp-devel liblcms2-devel libevent-devel protobuf-devel libprotobuf-c-devel pipewire-devel krb5-devel \</code>
*: <code>libgcrypt20 libgcrypt-devel libgudev-1_0-devel ruby npm-default pciutils-devel xmlsec1-nss-devel systemd-devel \</code>
*: <code>libqt5-qtsvg-devel libqt5-qtsvg-private-headers-devel</code>
<br>
 
==== fliteライブラリおよびlibspeechdライブラリのインストール ====
もし、fliteライブラリおよびlibspeechdライブラリがパッケージ管理システムに存在しない場合、<br>
fliteライブラリおよびlibspeechdライブラリのビルドに必要なライブラリをインストールする。<br>
sudo zypper install glib2-devel gcc-c+ automake autoconf pkg-config libtool makeinfo texinfo gettext-runtime gettext-tools \
                    dotconf-devel libsndfile-devel python3-pyxdg festival-devel libpulse-devel espeak-devel
<br>
[http://www.festvox.org/flite/download.html fliteライブラリの公式Webサイト]、または、[https://github.com/festvox/flite.git fliteライブラリのGithub]にアクセスして、ソースコードをダウンロードする。<br>
または、<code>git clone</code>コマンドを実行して、fliteライブラリのソースコードをダウンロードする。<br>
git clone https://github.com/festvox/flite.git
cd flite
<br>
fliteライブラリをビルドおよびインストールする。<br>
./configure --prefix=<fliteライブラリのインストールディレクトリ> --enable-shared
make -j $(nproc)
make get_voices -j $(nproc)
make install
<br>
[https://github.com/brailcom/speechd.git libspeechdライブラリのGithub]にアクセスして、ソースコードをダウンロードする。<br>
または、<code>git clone</code>コマンドを実行して、libspeechdライブラリのソースコードをダウンロードする。<br>
git clone https://github.com/brailcom/speechd.git
cd speechd
<br>
libspeechdライブラリをビルドおよびインストールする。<br>
export PATH="/<fliteライブラリのインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="/<fliteライブラリのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
autoreconf -i
./configure --prefix=<libspeechdライブラリのインストールディレクトリ> --enable-shared --with-flite=<fliteライブラリのインストールディレクトリ>
make -j $(nproc)
sudo make install
<br>
<br>


==== ソースコードのダウンロード ====
==== ソースコードのダウンロード ====
Qtのソースコードをダウンロードする。<br>
Qtのソースコードをダウンロードする。<br>
git clone --recursive https://code.qt.io/qt-creator/qt-creator.git
* Qt Everywhere (推奨)<br>
*: <code>wget https://download.qt.io/official_releases/qt/x.x/x.x.x/single/qt-everywhere-src-x.x.x.tar.xz</code>
*: <code>tar xf qt-everywhere-opensource-src-x.x.x.tar.gz</code>
*: <br>
* Githubの使用
*: GithubからQtのソースコードを個別にダウンロードする。<br>
*: <code>git clone https://github.com/qt/qt5.git</code>
*: <br>
*: ダウンロードしたスーパーリポジトリに移動する。<br>
*: <code>cd qt5</code>
*: <code>git checkout <Qtのバージョン></code>
*: または
*: <code>git checkout <Qtのショートバージョン></code>
*: <br>
*: <code>init-repository</code>コマンドは、Qtが提供する指定したモジュールのソースコードを取得するためのツールである。<br>
*: スーパーリポジトリは小さく、全てのモジュール(ライブラリ)はgit submodulesとして保持されている。<br>
*: <br>
*: 利用可能な全てのモジュールについては[https://doc.qt.io/qt-5/qtmodules.html Qt5の公式Webサイト]、ツールについては<code>init-repository --help</code>コマンドまたは[https://github.com/qt/qt5/blob/dev/init-repository Qt5のGithub]を参照すること。<br>
*: <code>./init-repository --module-subset=essential,qtsvg,qtvirtualkeyboard,qtquickcontrols</code>
*: <code>./init-repository -f --module-subset=qtquick3d,qtquicktimeline,qtwayland</code>  # 必要な場合は個別に追加ダウンロードする
<br>
<br>
==== ソースコードのビルド ====
==== ソースコードのビルド ====
Qtのソースコードをビルドするため、ビルド用のディレクトリを作成する。<br>
ビルド用ディレクトリを作成する。<br>
  mkdir build
  mkdir build && cd build
cd build
<br>
<br>
Qtをビルドおよびインストールする。<br>
* configureスクリプトを使用する場合
*: <code>CC=<GCC 8以降のGCC実行ファイルのパス> CXX=<GCC 8以降のG++実行ファイルのパス> \</code>
*: <code>../configure -release \</code>
*: <code>-opensource -confirm-license -v \</code>
*: <code>-opengl es2 \</code>  # このオプションは不要の可能性あり
*: <code>-no-use-gold-linker -recheck-all \</code>  # このオプションは不要の可能性あり
*: <code>-no-compile-examples -make libs \</code>
*: <code>-skip qtandroidextras -skip qtmacextras -skip qtwinextras \</code>
*: <code>-prefix <Qtのインストールディレクトリ> \</code>
*: <code>-no-pch</code>
*: <br>
* qmakeを使用する場合
* qmakeを使用する場合
*: オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。
*: オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。
*: <code>export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ></code>
*: <code>export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ></code>
*: <br>
*: <code>qmake ../qt-creator/qtcreator.pro</code>
*: <code>qmake ../qt-creator/qtcreator.pro</code>
*: <code>make qmake_all</code>
*: <code>make qmake_all</code>
*: <code>make -j 8</code>
*: <code>make -j $(nproc)</code>
*: <br>
*: もし、<code>Project ERROR: Unknown module(s) in QT: script</code>というエラーが出力される場合、以下のコマンドを実行する。
*: もし、<code>Project ERROR: Unknown module(s) in QT: script</code>というエラーが出力される場合、以下のコマンドを実行する。
*: <code>make -j 8 module-qtscript</code>
*: <code>make -j $(nproc) module-qtscript</code>
*: <br>
*: <br>
* cmakeを使用する場合
* cmakeを使用する場合
*: Qtのソースコードをビルドする。
*: Qtのソースコードをビルドする。
*: <code>cmake -G Ninja -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=<Qtのインストールディレクトリ>; <LLVMのインストールディレクトリ> ../qt-creator</code>
*: <code>cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=<Qtのインストールディレクトリ> <LLVMのインストールディレクトリ> ../qt-creator</code>
*: <code>cmake --build ..</code>
*: <code>ninja -C ../ build</code>
<br>
<br>
コンパイルには時間が掛かるので気長に待つ。(バイナリファイルは、qt-createor-build/binディレクトリに作成される)<br>
コンパイルには多くの時間が掛かることに注意する。<br>
(バイナリファイルは、qt-createor-build/binディレクトリに作成される)<br>
<br>
<br>
==== Qtのインストール ====
==== Qtのインストール ====
Qtをインストールする。<br>
Qtをインストールする。<br>
  make install INSTALL_ROOT=<Qtのインストールディレクトリ>
  make install INSTALL_ROOT=<Qtのインストールディレクトリ>
<br>
==== QtWebEngineのインストール ====
QtWebEngineを別途インストールする場合は、以下の手順に従う。<br>
# もし、必要ならば、Qtの公式WebサイトからQtWebEngineをダウンロードする。
#: https://download.qt.io/official_releases/qt/x.x/x.x.x/submodules/qtwebengine-everywhere-src-x.x.x.tar.xz
#: <br>
# もし、上記URLからQtWebEngine単体をダウンロードしてビルドする場合は、ローカルヘッダが利用可能であることを確認する。
#: <code>find <QtWebEngineのソースコードがあるディレクトリ> -type f -name "*.pr[io]" | xargs sed -i -e 's|INCLUDEPATH += |&$$QTWEBENGINE_ROOT/include |'</code>
#* <br>
# QtWebEngineでのジャンボビルドを無効化する。 (標準のジャンボビルドシステムでは、コンパイル時に不明のエラーが出力されるため)
#: <code>sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' /<QtWebEngineのソースコードがあるディレクトリ>/src/buildtools/config/common.pri</code>
#: <br>
# QtWebEngineは、現在のパブリックリリースよりも遅いリリースを目的としているため、Qt 5.15.2向けとしてビルドするように変更する。
#: <code>sed -e '/^MODULE_VERSION/s/5.*/5.15.2/' -i /<QtWebEngineのソースコードがあるディレクトリ>/.qmake.conf</code>
#: <br>
# PulseAudioライブラリを実行時ではなく、ビルド時にリンクするようにする。<br>これは、新しいPulseAudioでの問題を防ぐことにもなる。
#: <code>sed -e '/link_pulseaudio/s/false/true/' -i /<QtWebEngineのソースコードがあるディレクトリ>/src/3rdparty/chromium/media/media_options.gni</code>
#: <br>
# ビルドシステムの変更点として、<code>make</code>に<code>-j 20</code>等を渡す場合、LFSの環境変数<code>NINJAJOBS</code>の使用でビルドが破壊されることを修正する。
#: <code>sed -i 's/NINJAJOBS/NINJA_JOBS/' /<QtWebEngineのソースコードがあるディレクトリ>/src/core/gn_run.pro</code>
#: <br>
# Qt WebEngineをビルドおよびインストールする。
#: <code>mkdir build && cd build</code>
#: <br>
#: <code>export PATH="/<Qtのインストールディレクトリ>/bin:$PATH"; \</code>
#: <code>export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"; \</code>
#: <code>export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)" \</code>
#: <code>export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"</code>
#: <br>
#: <code>qmake .. -- -system-ffmpeg -webengine-icu</code>
#: <code>make -j $(nproc)</code>
#: <code>make install</code>
#: <br>
# インストールされたライブラリ依存ファイル(.prlファイル)から、ビルドディレクトリへの参照を削除する。
#: <code>find /<Qtのインストールディレクトリ> -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</code>
<br><br>
<br><br>


== デスクトップエントリの追加 ==
== デスクトップエントリの追加 ==
以下のコマンドを実行して、デスクトップエントリを追加する。
以下のコマンドを実行して、デスクトップエントリを追加する。
  sudo vi /usr/share/applications/qtcreator.desktop
  vi ~/.local/share/applications/Qt_Creator.desktop
<br>
# Qt_Creator.desktopファイル
   
   
# qtcreator.desktopファイル
  [Desktop Entry]
  [Desktop Entry]
  Type=Application
  Type=Application
  Exec="/home/ユーザ名/Qt/Tools/QtCreator/bin/qtcreator" %F
  Exec="/home/<ユーザ名>/Qt/Tools/QtCreator/bin/qtcreator" %F
  Name=Qt Creator
  Name=Qt Creator <バージョン名>
  GenericName=The IDE of choice for Qt development.
  GenericName=Qt Creator
  Icon=QtProject-qtcreator
  Icon=QtProject-qtcreator
  StartupWMClass=qtcreator
  StartupWMClass=qtcreator
146行目: 340行目:
  MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
  MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
<br>
<br>
  sudo vi /usr/share/applications/Qt-MaintenanceTool.desktop
  vi ~/.local/share/applications/Qt_MaintenanceTool.desktop
<br>
# Qt_MaintenanceTool.desktopファイル
   
   
# Qt-MaintenanceTool.desktopファイル
  [Desktop Entry]
  [Desktop Entry]
  Type=Application
  Type=Application
Exec=/home/ユーザ名/Qt/MaintenanceTool
  Path=/home/<ユーザ名>/Qt
  Path=/home/ユーザ名/Qt
  Name=Qt Maintenance Tool
  Name=Qt Maintenance Tool
  GenericName=Install or uninstall Qt components.
  GenericName=Install or uninstall Qt components.
  Icon=/home/ユーザ名/Qt/QtIcon.png
Exec=/home/<ユーザ名>/Qt/MaintenanceTool
  Icon=/home/<ユーザ名>/Qt/QtIcon.png
  Terminal=false
  Terminal=false
  Categories=Development;Qt;
  Categories=Development;Qt;
<br>
<br>
  sudo vi /usr/share/applications/qt-project.qtdesigner.desktop
  vi ~/.local/share/applications/Qt_Designer.desktop
<br>
# Qt_Designer.desktopファイル
   
   
# qt-project.qtdesigner.desktopファイル
  [Desktop Entry]
  [Desktop Entry]
  Type=Application
  Type=Application
  Exec="/home/ユーザ名/Qt/5.14.0/gcc_64/bin/designer" %F
Name=Qt Designer <バージョン名>
Name=Qt Designer
GenericName=Qt Designer
GenericName=Qt designer
Comment=
  Icon=/home/ユーザ名/Qt/designer.png
Path=
  Exec="/home/<ユーザ名>/Qt/<バージョン名>/gcc_64/bin/designer" %F
  Icon=/home/<ユーザ名>/.icons/Qt_Designer.png
StartupNotify=true
  StartupWMClass=qtdesigner
  StartupWMClass=qtdesigner
  Terminal=false
  Terminal=false
TerminalOptions=
  Categories=Development;IDE;Qt;
  Categories=Development;IDE;Qt;
  MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
  MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
<br><br>
<br><br>


== クロスコンパイル ==
== 日本語入力 ==
Raspberry Piにおいて、クロスコンパイルを行う手順を記載する。<br>
専用のインストーラからQtをインストールする場合、Qt Creatorにおいて、日本語が入力できない問題が存在する。<br>
<br>
<br>
これは、デスクトップスタイルのソフトウェアをX11の下で実行するためのものではなく、<br>
これは、plugins/platforminputcontextsディレクトリにlibfcitxplatforminputcontextplugin.soファイルが欠如しているため、IMEの切り替えができないからである。<br>
ソフトウェアがBroadcomドライバを使用して、dispmanx / EGLの上でフルスクリーンで実行するという、<br>
そのため、ユーザがlibfcitxplatforminputcontextplugin.soファイルを含むfcitx-qt5ライブラリを、ソースコードからビルドしてインストールする必要がある。<br>
実際の組み込み / デバイス作成のユースケースを想定している。<br>
<br>
==== Linux PCの初期設定 ====
Linux PCにおいて、以下の依存関係のライブラリをインストールする。<br>
sudo zypper install libicu-devel Mesa-devel Mesa-libGL-devel libXinerama-devel libxslt-devel \
                    libopenssl-devel libXcursor-devel libXcomposite-devel libXdamage-devel libXrandr-devel fontconfig-devel \
                    libcap-devel libXtst-devel libpulse-devel libudev-devel pciutils-devel mozilla-nss-devel libXss-devel \
                    Mesa-libEGL-devel
sudo zypper install cmake unzip
sudo zypper install autoconf automake tar gcc g++ libgfortran5 gperf git python gperf pkg-config wget
sudo zypper install flex texinfo gawk bison openssl pigz ncurses5-devel figlet
<br>
Raspberry Pi向けにビルドするため、GCC ARMツールチェインをダウンロードする。<br>
<center>
表. GCC ARMツールチェーンのダウンロード<br>
{| class="wikitable" style="background-color:#fefefe;"
|-
! style="background-color:#00ffff;" | GCC ARMツールチェーン
! style="background-color:#00ffff;" | ビルドOS
! style="background-color:#00ffff;" | ターゲットOS
! style="background-color:#00ffff;" | GCC ARMツールチェーンのバージョン
|-
| Raspbian Stretch 32bit || x64 / x86 Linux || Raspbian Stretch 32bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ 6.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%2010.2.0/ 10.2.0]
|-
| Raspbian Stretch 64bit || x64 / x86 Linux || Raspbian Stretch 64bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ 6.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%2010.2.0/ 10.2.0]
|-
| Raspbian Buster 32bit || x64 / x86 Linux || Raspbian Buster 32bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ 8.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%2010.2.0/ 10.2.0]
|-
| Raspbian Buster 64bit || x64 / x86 Linux || Raspbian Buster 64bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ 8.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Buster/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Buster/GCC%2010.2.0/ 10.2.0]
|}
</center>
<br>
また、古いコンパイラではあるが、LINEROからGCC ARMツールチェーンをダウンロードできる。<br>
https://releases.linaro.org/components/toolchain/binaries/<br>
wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
tar xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
<br>
GCC ARMツールチェインを解凍して、任意のディレクトリに配置する。<br>
ここでは、~/InstallSoftware/GCC_ARMディレクトリに配置している。<br>
mv cross-gcc-10.2.0-pi_3+.tar.gz GCC_Raspbian_Buster32_10_2_0
cd GCC_Raspbian_Buster32_10_2_0 ~/InstallSoftware/GCC_ARM
<br>
GCC ARMツールチェーンは、システム固有のLTO(Link Time Optimization)フラグを使用して構築されているため、<br>
ソフトウェアをコンパイルする時、これらのツールチェーンを使用することで、Raspberry PiのSoC固有の機能を簡単に利用することができる。<br>
<br>
Raspberry Pi 4は、Broadcom BCM2711 SoC(Cortex-A72 64bit)を採用しており、Raspberry Pi 3B+と同様、ARMv8-aアーキテクチャを採用している。<br>
<br>
<center>
表. Raspberry PiとLTO(Link Time Optimization)フラグの関係<br>
{| class="wikitable" style="background-color:#fefefe;"
|-
! style="background-color:#00ffff;" | Raspberry Piの種類
! style="background-color:#00ffff;" | LTO(Link Time Optimization)フラグ
|-
| Raspberry Pi Zero/W/WH<br>Raspberry Pi 1 Model A / B / A+ / B+ || -march=armv6 -mfloat-abi=hard -mfpu=vfp
|-
| Raspberry Pi 2 Model A / B<br>Raspberry Pi 3 Model A / B || -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4
|-
| Raspberry Pi 3 Model A+ / B+ (32Bit)<br>Raspberry Pi 4 Model A+ / B+ (32Bit)<br>Raspberry Pi Compute 3 / 3lite / 3+ (32Bit) || -march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8
|-
| Raspberry Pi 3 Model A+ / B+ (64Bit)<br>Raspberry Pi 4 Model A+ / B+ (64Bit)<br>Raspberry Pi Compute 3 / 3lite / 3+ (64Bit) || -march=armv8-a+fp+simd
|}
</center>
<br>
<br>
以下に、fcitx-qt5ライブラリをインストールする手順を示す。<br>
# まず、Qt Creatorを起動して、[ヘルプ]メインメニューから[About Qt Creator...]を選択、バージョン情報を確認する。<br>以下の画像では、Qt Creatorのバージョンは6.0.2、Qt Creatorのビルドに使用されたQt SDKは6.2.2となっている。
#: [[ファイル:Install Qt 1.png|フレームなし|中央]]
#: <br>
# fcitx-qt5のインストールに必要な依存関係のライブラリをインストールする。
#: <code>sudo zypper install extra-cmake-modules libxkbcommon-devel</code>
# fcitx-qt5のソースコードをダウンロードする。
#: <code>git clone https://github.com/fcitx/fcitx-qt5.git</code>
# もし、上記の画像のように、<u>Qt Creatorのビルドに使用されたQt SDKが6の場合、</u><br><u>Qtメンテナンスツールを起動して、[コンポーネントの追加または削除]から該当するQtのバージョン以降の[Desktop gcc 64-bit]のみをインストールする。</u>
#: <br>
# ダウンロードしたfcitx-qt5のディレクトリに移動して、ビルド向けディレクトリを作成する。
#: <code>cd fcitx-qt5 && mkdir build && cd build</code>
# fcitx-qt5ライブラリをビルドおよびインストールする。<br><u>インストールディレクトリは、自動的に/<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontextsディレクトリにインストールされる。</u>
#: # Qt Creatorのビルドに使用されたQt SDKが5の場合
#: <code>export PATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/bin:$PATH"</code>
#: <code>export CPATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/include:$CPATH"</code>
#: <code>export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/lib:$LD_LIBRARY_PATH"</code>
#: <code>export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"</code>
#: <code>export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/lib/pkgconfig:$PKG_CONFIG_PATH"</code>
#: <br>
#: # Qt Creatorのビルドに使用されたQt SDKが6の場合
#: <code>export PATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/bin:$PATH"</code>
#: <code>export CPATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/include:$CPATH"</code>
#: <code>export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/lib:$LD_LIBRARY_PATH"</code>
#: <code>export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"</code>
#: <code>export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/lib/pkgconfig:$PKG_CONFIG_PATH"</code>
#: <br>
#: # ビルドおよびインストール
#: <code>ENABLE_LIBRARY=$(pkg-config --exists fcitx icu-uc && echo ON || echo OFF) && \</code>
#: <code>cmake .. -DENABLE_LIBRARY=$ENABLE_LIBRARY \</code>
#: <code>-DCMAKE_C_COMPILER=<GCC 8以降:Qt Creatorのビルドに使用されたQt SDKが6の場合> -DCMAKE_CXX_COMPILER=<GCC 8以降:Qt Creatorのビルドに使用されたQt SDKが6の場合> \</code>
#: <code>-DCMAKE_BUILD_TYPE=Release \</code>
#: <code>-DENABLE_QT4=<Qt Creatorのビルドに使用されたQt SDKが4の場合はon、それ以外はoff> \</code>
#: <code>-DENABLE_QT5=<Qt Creatorのビルドに使用されたQt SDKが5の場合はon、それ以外はoff> \</code>
#: <code>-DENABLE_QT6=<Qt Creatorのビルドに使用されたQt SDKが6の場合はon、それ以外はoff> \</code>
#: <code>-DCMAKE_PREFIX_PATH=/<Qtのインストールディレクトリ>/<バージョン>/gcc_64  # Qt Creatorのビルドに使用されたQt SDKのディレクトリ</code>
#: <br>
#: <code>make -j $(nproc)</code>
#: <code>make install</code>
# インストールしたlibfcitxplatforminputcontextplugin.soファイルを、/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontextsディレクトリに配置する。<br>これにより、Qt Creator等において、FcitxでのIMEの切り替えができるようになる。<br><br><u>ただし、Qt Creatorをアップデートする場合は、fcitx-qt5を再インストールする必要があるため注意すること。</u>
#: <br>
#: <code>cp /<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \</code>
#: <code>  /<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts</code>
<br><br>


==== Raspberry Piの初期設定 ====
== Felgoのインストール ==
raspi-configを実行して、Xではなくコンソールで起動するように変更して、VRAMを256[MB]に変更する。(オプション)<br>
==== Felgoとは ====
sudo raspi-config
Felgoは、Qtフレームワークをベースに大幅に拡張したクロスプラットフォームのソフトウェア開発ソリューションであり、<br>
<br>
PC、Android、iOS、Web(WebAssembly)、組み込みシステム等の多くのプラットフォームでネイティブに動作する。<br>
また、Raspbian Stretchの場合は、rpi-updateを実行する必要がある。<br>
詳細については、[https://bugreports.qt.io/browse/QTBUG-62216 こちらを参照]すること。<br>
sudo rpi-update
reboot
<br>
<br>
Qtの開発用ライブラリファイルをインストールする。(ここでは簡単にするために、build-depを使用する)<br>
Felgoは、以下に示すような独自のQt/QMLツール、クラウドサービス、Qtを拡張する200以上のAPIを追加したFelgo SDKを提供している。<br>
/etc/apt/sources.listファイルのdeb-srcから始まる行のコメントを外す。<br>
* 高度なコントロールとネイティブなナビゲーション
sudo vi /etc/apt/sources.list
* テーマとスタイル
* レイアウト
* ファイル操作(ローカル/リモート)
* データ管理とモデル/ビュー
* マルチメディア
* RESTネットワーク(※)
* ネイティブなダイアログと機能
<br>
<br>
# /etc/apt/sources.list
※RESTとは<br>
Webシステムに適用したソフトウェアの設計様式のことであり、パラメータを指定して特定のURLにHTTPでアクセスする時、<br>
# 編集前
XMLやJSONなどで記述されたメッセージが送られてくるようなシステム、および、そのような呼び出し規約のことである。<br>
# Raspbian Stretch
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
# Raspbian Buster
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# 編集後
# Raspbian Stretch
deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
# Raspbian Buster
deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
<br>
<br>
sudo apt-get update && sudo apt-get full-upgrade && sudo apt autoremove
本来のRESTの設計原則は主として以下の4つの項目からなる。<br>
* セッション等の状態管理を行わず、やり取りされる情報はそれ自体で完結して解釈することができる。(WebではHTTP自体にはセッション管理の機構はない)
# Raspbian Stretch
* 情報を操作する命令の体系が予め定義・共有されている。(WebではHTTPメソッドに相当)
sudo apt-get install build-essential cmake cmake-data cmake-doc ninja-build libjsoncpp1 librhash0 unzip pkg-config
* 全ての情報は汎用的な構文で一意に識別される。(URL/URIに相当)
sudo apt-get build-dep qt5-qmake libqt5gui5 libqt5webengine-data libqt5webkit5 libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev \
* 情報の一部として、別の状態や別の情報への参照を含めることができる。(ハイパーメディア的な書式で情報を表現する。HTMLやXMLに相当)
                        libxcb-xinerama0 gdbserver
sudo apt-get install libpthread-stubs0-dev libts-0.0-0 libxau-dev \
                      libxcb-doc libxcb-xinerama0-dev libxcb-xinerama0-dev libxcb-xinerama0 libxcb1-dev libxdmcp-dev tsconf x11proto-core-dev \
                      xorg-sgml-doctools
# Raspbian Buster
sudo apt-get install build-essential cmake cmake-data cmake-doc ninja-build libjsoncpp1 librhash0 unzip pkg-config
sudo apt-get build-dep qt5-qmake libqt5gui5 libqt5webengine-data libqt5webkit5 libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev \
                        libxcb-xinerama0 gdbserver
sudo apt-get install libxcb-randr0-dev libxcb-xtest0-dev libxcb-shape0-dev libxcb-xkb-dev
<br>
もし、Qtソフトウェアにおいて、マルチメディアやBluetoothの機能を追加する場合、以下のパッケージをインストールする。<br>
# マルチメディア用
sudo apt install libjpeg-dev libpng-dev libtiff-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt install libxvidcore-dev libx264-dev
# マルチメディア用(GStreamer)
sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
                  gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 \
                  gstreamer1.0-qt5 gstreamer1.0-pulseaudio
sudo apt install libgstreamer1.0-dev  libgstreamer-plugins-base1.0-dev
# オーディオ用
sudo apt install libopenal-data libsndio7.0 libopenal1 libopenal-dev pulseaudio
# Bluetooth用
sudo apt install bluez-tools
sudo apt install libbluetooth-dev
<br>
<br>
ビルドしたQtソフトウェアをRasberry Piにデプロイするためのディレクトリ(ターゲットディレクトリ)を作成する。<br>
==== Felgoのインストール ====
加えて、Qt5ライブラリを配置するディレクトリも作成する。<br>
既存のQtにFelgoを拡張機能として追加することができる。<br>
mkdir -p ~/Qt5Pi ~/InstallSoftware/Qt_5_x_x
<br>
<br>
また、重要なシンボリックリンクを作成する。<br>
まず、[https://marketplace.qt.io/products/felgo FelgoのQt Marketplace]にアクセスおよびログインした後、[Qt extension]を選択する。<br>
sudo ln -sf -r /usr/include/arm-linux-gnueabihf/asm /usr/include && \
必要な情報を入力して、[Continue to payment]を選択する。<br>
sudo ln -sf -r /usr/include/arm-linux-gnueabihf/gnu /usr/include && \
sudo ln -sf -r /usr/include/arm-linux-gnueabihf/bits /usr/include && \
sudo ln -sf -r /usr/include/arm-linux-gnueabihf/sys /usr/include && \
sudo ln -sf -r /usr/include/arm-linux-gnueabihf/openssl /usr/include && \
sudo ln -sf /usr/lib/arm-linux-gnueabihf/crtn.o /usr/lib/crtn.o && \
sudo ln -sf /usr/lib/arm-linux-gnueabihf/crt1.o /usr/lib/crt1.o && \
sudo ln -sf /usr/lib/arm-linux-gnueabihf/crti.o /usr/lib/crti.o
<br>
<br>
次のセクションにおいて、<code>rsync</code>コマンドを使用してLinux PCとRaspberry Piのファイルを同期する。<br>
次に、Qtメンテナンスツールを起動して、[コンポーネントの選択]画面の[Marketplace]項目でFelgoを選択およびインストールする。<br>
<u>しかし、同期するファイルには、スーパユーザ権限が必要なものがある。</u><br>
もし、Felgoをインストールできない場合は、Felgoインストーラを使用して、既存のQtとは別にFelgoをインストールする。<br>
<br>
<br>
そのため、一般ユーザでも全てのファイルを同期できるように、/etc/sudoersファイルに以下の設定を追記する。<br>
<u>※注意</u><br>
以下の設定により、<code>rsync</code>コマンドは、必要に応じてスーパユーザ権限で実行される。<br>
<u>最新版のQtに対応したFelgoがまだリリースされていない場合は、Felgoはビルドキットに追加されない。</u><br>
echo "$USER ALL=NOPASSWD:$(which rsync)" | sudo tee --append /etc/sudoers
<br>
<br>
Felgoのアカウントの削除する場合は、[https://felgo.com/developers Felgoの公式Webサイト]にアクセスおよびログインする。<br>
アカウント設定ページ右の[Edit] - アカウント設定ページ下の[Account Termination Request] - [Delete Account]ボタンを押下する。<br>
<br><br>


==== クロスコンパイル用Qtライブラリのビルドおよびインストール ====
== Raspberry Piのクロスコンパイル ==
Linux PC上で、Raspberry Pi向けのQtソフトウェアをクロスコンパイルできるように、ツールチェーンおよびSDKを設定する。<br>
Raspberry Piでクロスコンパイルを行う場合、[[インストール - Qt5 Raspberry Pi]]のページを参照すること。<br>
Raspberry Pi上でネイティブにコンパイルすることもできるが、Linux PCの方がスループットが良い。<br>
<br>
Linux PC上に開発用ディレクトリを作成する。<br>
また、Raspberry Piのいくつかのルートディレクトリと同期する必要があるため、システムルートディレクトリも作成する。<br>
mkdir -p ~/Program/Qt_Embedded ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt
<br>
<code>rsync</code>コマンドを使用して、Raspberry Piのいくつかのルートディレクトリと同期する。<br>
rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot
rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot
rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include ~/Program/Qt_Embedded/sysroot/usr
rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib ~/Program/Qt_Embedded/sysroot/usr
rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/opt/vc ~/Program/Qt_Embedded/sysroot/opt
<br>
同期したいくつかのルートディレクトリのシンボリックリンクを相対的に調整する。<br>
fixQualifiedLibraryPathsが正常に動作しないため、提供されたスクリプトをダウンロードして実行する。<br>
wget https://raw.githubusercontent.com/Kukkimonsuta/rpi-buildqt/master/scripts/utils/sysroot-relativelinks.py
chmod +x sysroot-relativelinks.py
./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot
<br>
Linux PC上で、QtBaseのダウンロードとQtの設定を行う。<br>
<br>
ここでは、Qtソフトウェアのターゲットディレクトリにおいて、Raspberry Pi側では、~/Qt5Piディレクトリ、<br>
qmake等のホストツール(Linux PC上)では、~/Program/Qt_Embedded/Qt5ディレクトリ、<br>
<code>make install</code>コマンドでは、~/Program/Qt_Embedded/Qt5Piをターゲットとする。<br>
(Raspberry Piと同期するのは、このディレクトリである)<br>
<br>
以下のコマンドにおいて、<Qtのバージョン>は、使用するQtのバージョンに変更する。
* <Qtのバージョン>
** Qt 5.12.7
**: 5.12.7
** Qt 5.15.2
**: 5.15.2
<br>
また、<Raspberry Piのバージョン>は、Raspberry Piの種類に変更する。<br>
* <Raspberry Piのバージョン>
** Raspberry Pi 1
**: <code>linux-rasp-pi-g++</code>
** Raspberry Pi 2
**: <code>linux-rasp-pi2-g++</code>
** Reaspberry Pi 3
**: <code>linux-rasp-pi3-g++</code>
** Raspberry Pi 4
**: <code>linux-rasp-pi4-v3d-g++</code>
<br>
<u>Raspbian OSにおいて、64ビットを使用している場合は、<code>device-option</code>オプションを以下のように記述する。</u><br>
-device-option CROSS_COMPILE=/<GCC ARMツールチェイン 64bitのインストールディレクトリ>/bin/arm-linux-gnueabihf-
<br>
また、Qt 5.9以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br>
cd ~/Program/Qt_Embedded
git clone git://code.qt.io/qt/qtbase.git -b <Qtのバージョン>
または
git clone https://github.com/qt/qtbase -b <Qtのバージョン>
cd qtbase && mkdir build && cd build
../configure -release -opengl es2 -eglfs -device <Raspberry Piのバージョン> \
-device-option CROSS_COMPILE=/<GCC ARMツールチェーンのインストールディレクトリ>/bin/arm-linux-gnueabihf- \
-sysroot /home/<ユーザ名>/Program/Qt_Embedded/sysroot -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine \
-nomake tests -make libs -pkg-config -recheck \
-L/home/<ユーザ名>/Program/Qt_Embedded/sysroot/usr/lib/arm-linux-gnueabihf -I/home/<ユーザ名>/Program/Qt_Embedded/sysroot/usr/include/arm-linux-gnueabihf \
-prefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -extprefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -v -no-use-gold-linker
make -j $(nproc)
make install
<br>
失敗した場合は、全てを削除するために以下のコマンドを実行する。<br>
git clean -dfx
<br>
上記のQtBaseを使用せずに、全てのQtモジュールをビルドおよびインストールする場合、以下のコマンドを実行する。<br>
wget https://download.qt.io/official_releases/qt/x.x/x.x.x/single/qt-everywhere-src-x.x.x.tar.xz
tar xf qt-everywhere-opensource-src-x.x.x.tar.gz
cd qt-everywhere-opensource-src-x.x.x
mkdir build && cd build
# Raspberry Pi 3B向け
../configure -release -opengl es2 -device <Raspberry Piのバージョン> \
-device-option CROSS_COMPILE=/<GCC ARMツールチェーンのインストールディレクトリ>/bin/arm-linux-gnueabihf- \
-sysroot /home/<ユーザ名>/Program/Qt_Embedded/sysroot -opensource -confirm-license \
-prefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -extprefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -hostprefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -v -no-use-gold-linker
make -j $(nproc)
make install
<br>
ただし、SDKにネイティブのrccファイルが含まれていないため、rccファイルをSDKのbinディレクトリにコピーする。<br>
(Qtモジュールを使用するソフトウェアをビルドする場合、このrccバイナリが必要である)<br>
cp ~/Program/Qt_Embedded/qtbase/bin/rcc ~/Program/Qt_Embedded/Qt5/bin
<br>
ビルドしたQtライブラリを、Raspberry Piにデプロイする。<br>
~/Program/Qt_Embedded/Qt5ディレクトリに存在する全てのファイルを、Raspberry Piの/usr/localディレクトリに同期させる。<br>
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5 <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/local
<br>
Raspberry PiのリンカがQtライブラリを読み込むようにするため、以下のコマンドを実行する。<br>
ただし、Raspberry Pi 2の場合、Qtソフトウェアの実行で問題が発生する時は、qt5_15.confファイルではなく、00-qt5_15.confファイルを作成する。<br>
echo /usr/local/qt5_15/lib | sudo tee /etc/ld.so.conf.d/qt5_15.conf
sudo ldconfig
<br>
上記の設定により、Raspberry Pi上において、Qt 5.15.2を使用できる。<br>
<br><br>
<br><br>


==== Qtソフトウェアの動作確認 ====
== PinePhoneのクロスコンパイル ==
Qtソフトウェアをビルドして、動作確認を行う。<br>
Raspberry Piでクロスコンパイルを行う場合、[[インストール_-_Qt5_PinePhone]]のページを参照すること。<br>
<br>
まず、Qt Creatorを起動して、Qt Creatorメイン画面左の[プロジェクト] - 右ペインの[ビルド設定] - [Build Environment]項目 - [詳細]プルダウンを開く。<br>
[詳細]プルダウンから[追加]ボタンを押下して、以下の項目を設定する。<br>
* Variable - QT_QPA_PLATFOMRTHEME
*: Value - qt5ct
* Variable - DISPLAY
*: Value - :0.0
* Variable - XAUTHORITY
*: Value - /home/<Raspberry Piのユーザ名>/.Xauthrity
* Variable - XDG_SESSION_TYPE
*: Value - x11
<br>
次に、Raspberry Pi側の~/.profileファイルまたは~/.bashrcファイルに、以下の設定を追記する。<br>
export QT_QPA_PLATFOMRTHEME=qt5ct
export DISPLAY=:0.0
export XAUTHORITY=/home/<Raspberry Piのユーザ名>/.Xauthrity
export XDG_SESSION_TYPE=x11
<br>
ビルドの完了後、実行ファイルをRaspberry Piにコピーする。<br>
cd qtbase/examples/opengl/qopenglwidget
~/Program/Qt_Embedded/Qt5/bin/qmake
make -j 8
scp -P <ポート番号> -i <秘密鍵のフルパス> qopenglwidget <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi
<br>
Raspberry Pi上で、EGL / GLESライブラリを修正する。<br>
Raspberry Piの/usr/lib/arm-linux-gnueabihfディレクトリには、MesaのlibEGLとlibGLESv2が存在する。<br>
Qtソフトウェアは、/opt/vc/libディレクトリにあるライブラリではなく、これらを選択することになる。<br>
<br>
これは、OpenGLのパフォーマンスを気にしないX11デスクトップソフトウェアには都合が良いが、<br>
フルスクリーンの組み込みソフトウェアをウィンドウ化するには全く役に立たない。<br>
<br>
オリジナルのファイルは、必ず、バックアップする。<br>
sudo mv /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0_org
sudo mv /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_org
sudo ln -s /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
sudo ln -s /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
sudo ln -s /opt/vc/lib/libbrcmEGL.so /opt/vc/lib/libEGL.so
sudo ln -s /opt/vc/libbrcmGLESv2.so /opt/vc/libGLESv2.so
<br>
また、見つからないシンボリックリンクも追加する。<br>
sudo ln -s /opt/vc/lib/libEGL.so /opt/vc/lib/libEGL.so.1
sudo ln -s /opt/vc/libGLESv2.so /opt/vc/lib/libGLESv2.so.2
<br>
以下の例では、Linux PC側で、Qtソフトウェアをビルドしている。<br>
<Qtソフトウェアのサンプル>と<Qtのバージョン>はユーザ環境に合致するものを記述すること。<br>
git clone git://code.qt.io/qt/<Qtソフトウェアのサンプル>.git -b <Qtのバージョン>
cd <Qtソフトウェアのサンプル>
~/Program/Qt_Embedded/Qt5/bin/qmake
make -j 8
make install
<br>
最後に、Qtソフトウェアをデプロイする。<br>
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]

2024年11月23日 (土) 17:47時点における最新版

概要

Qtは、デスクトップ、組み込み、モバイルプラットフォーム向けのソフトウェアやユーザーインターフェイスの作成を効率化するために設計されたツールを備えた完全な開発フレームワークである。

Qt 5.15 LTSのサポート期間は、Qtレガシーライセンスは2023年5月26日まで、Qtサブスクリプションライセンスは2025年5月26日までである。

Qtライセンスを購入するには、http://www.qt.io/download/ を参照すること。

参考書
71ZdxoixPvL._SL1500_.jpg
Mastering Qt 5
C++, Qt Widgets, QMLを使用したクロスプラットフォームアプリケーションの作成
91V16o+L03L._SL1500_.jpg
Hands-On Mobile and Embedded Development with Qt 5
C++/QtでAndroid, iOS, Raspberry Pi用のアプリケーションを作成
717s6aji8ZL._SL1360_.jpg
Qt5 C++ GUI Programming Cookbook
Qt5でクロスプラットフォームのアプリケーションの作成



Qt ライセンス

Qtは、様々なユーザのニーズに対応できるよう、様々なライセンスオプションが用意されている。

商用ライセンスでライセンスされたQtは、第三者とソースコードを共有したくない場合やGNU LGPL version 3の条項に準拠できない場合、プロプライエタリ / 商用ソフトウェアの開発に適している。
LGPL version 3の下でライセンスされたQtは、GNU LGPL version 3またはGNU GPL version 3の条項と条件に従うことができれば、Qtアプリケーションの開発に適している。

Qtマーケットプレイスライセンス契約に基づいてライセンスされたQtコンポーネントは、
商用またはGNU LGPL version 3またはGNU GPL version 3の条件に基づいてライセンスされたQtソフトウェアコンポーネントと共通のQtアプリケーションの開発に適している。

Qtには、元の開発者から特定のオープンソースライセンスの下でライセンスされているサードパーティのコードも含まれている。
また、Qtのサンプルは、The Qt Companyの商用ライセンスおよびBSD 3条項ライセンスの下で入手可能である。

Qtライセンスの概要については、http://qt.io/licensing/ を参照すること。


通常のインストール

依存関係のライブラリのインストール

Qtの依存関係のライブラリをインストールする。
これらのライブラリは不要な可能性がある。(調査中)

# RHEL
sudo dnf install mesa-libOSMesa-devel

# SUSE
sudo zypper install Mesa-devel Mesa-KHR-devel
# または
sudo zypper install Mesa-KHR-devel Mesa-devel Mesa-dri-devel Mesa-libEGL-devel Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel \
                    Mesa-libglapi-devel kbproto-devel libOSMesa-devel libOSMesa8 libX11-devel libXau-devel libdrm-devel libgbm-devel \
                    libglvnd-devel libxcb-devel libxcb-screensaver0 libxcb-xf86dri0 libxcb-xtest0 libxcb-xvmc0 pthread-stubs-devel xproto-devel


Qtのダウンロード

最新版のQtをダウンロードするため、以下のコマンドを実行する。
ファイル情報を知りたい場合はこのWebサイトを参照する。

wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run

ダウンロードしたファイルのアクセス権限を変更する。

chmod +x qt-unified-linux-x64-online.run


Qtのインストール

/usr/localディレクトリ等にインストールする場合は、スーパーユーザでインストールする。
ホームディレクトリにインストールする場合は、ローカルユーザでインストールする。

次に、GCCおよびmake、付随するライブラリをインストールする。

# RHEL
sudo dnf groupinstall "Development tools"

# SUSE
sudo zypper install --type pattern devel_basis


Qtをインストールする。

./qt-unified-linux-x64-online.run


Qtのインストール画面に従って、インストールを実行する。

Qtをインストールした後、必要ならば、以下のコマンドを実行する。
これは、pkg-configコマンドが指すディレクトリを変更する設定である。

cd /<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib
cp ./pkgconfig ./pkgconfig_org

cd /<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib/pkgconfig
sed -i -e "s/prefix=\/home\/qt\/work\/install/prefix=\/<Qtのインストールディレクトリ>\/<Qtのバージョン>\/gcc_64/g" ./*



ソースコードからインストール

必須環境

  • Qt 5.14.0以降
  • Qt WebEngine module for QtWebEngine based help viewer
  • GCC 7以降
  • オプション : CMake
    CMakeを使用してLLVM / ClangとQt Creatorをビルドする時に必要である。
  • オプション : Ninja
    CMakeを使用してビルドする時に必要である。
  • オプション : LLVM / Clang 8.0.0以降
    Clang Code Model、Clang Tools、ClangFormat、Clang PCH Manager、Clang Refactoringプラグインに必要である。
    LLVM C++ APIは互換性を保証するものではないので、それ以降のバージョンがコンパイルできない場合は、そのバージョンをサポートしていない。
  • オプション : Qbs 1.7.x
    Qtのソースコードには、Qbs自身も含まれている。


また、Qtをビルドする時のオプション設定を以下に記載する。

# オプション : 環境変数PATHにおいて、llvm-configのパスが通っていない場合に必要である
export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ>

# オプション : Clangのリファクタリングを無効にする場合、1を設定する
export QTC_DISABLE_CLANG_REFACTORING=1

# オプション : QbsProjectManagerプラグインがQbsを使用する場合に必要である
export QBS_INSTALL_DIR=/path/to/qbs

# オプション : KSyntaxHighlightingを使用する場合、KSYNTAXHIGHLIGHTING_LIB_DIRライブラリを保持するディレクトリを設定する
# インクルードディレクトリの自動推定に失敗する場合、KSYNTAXHIGHLIGHTING_INCLUDE_DIRを設定して、
# 両方の設定をqmakeコマンドのオプションで渡すこともできる
export KSYNTAXHIGHLIGHTING_INCLUDE_DIR=<インクルードファイルを保持するディレクトリ>
export KSYNTAXHIGHLIGHTING_LIB_DIR=<ライブラリを保持するディレクトリ>


依存関係のライブラリのインストール

Qtのソースコードをコンパイルするために必要な依存関係のライブラリをインストールする。

sudo zypper install flex bison gperf git-core gcc-c++ make cmake unzip pkg-config python3 ruby perl libicu-devel \
                    glib2-devel dbus-1-devel fontconfig-devel libfontenc-devel libproxy-devel assimp-devel \
                    mozilla-nspr-devel nodejs16 nodejs16-devel re2-devel glproto-devel snappy-devel libSDL2-devel \
                    libinput-devel libhidapi-devel mtdev-devel tslib-devel \
                    Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel Mesa-libGLESv3-devel Mesa-libEGL-devel \
                    wayland-devel wayland-protocols-devel


SUSEにおいて、マルチメディア関連やBluetooth等を使用したソフトウェアを開発する場合、下表に示すパッケージをインストールする。

SUSE向け その他のライブラリ(オプション)
機能 インストールするライブラリ configureスクリプトのオプション
Bluetooth bluez bluez-devel bluez-tools
画像 openjpeg-devel openjpeg2-devel libjpeg62-devel libpng12-devel libpng16-devel
libtiff-devel libmng-devel libwebp-devel libjasper-devel
マルチメディア ffmpeg-4-libavdevice-devel ffmpeg-4-private-devel
gstreamer-devel gstreamermm-devel gstreamer-plugins-base-devel
gstreamer-plugins-bad-devel gstreamer-plugins-rs-devel gstreamer-devtools-devel
gnome-video-effects-devel gstreamer-editing-services-devel
ALSAオーディオ alsa-devel alsa-lib-devel
Pulseオーディオ libpulse-devel pulseaudio-qt-devel
OpenAL openal-soft-devel
GPS libgypsy-devel
Text to Speech festival-devel libspeechd-devel
シリアルポート libserialport-devel
センサ libsensors4-devel
データベース postgresql14-devel postgresql14-server-devel (PostgreSQL)
libmariadb-devel libmariadbd-devel libmariadbprivate (MariaDB)
unixODBC-devel (ODBC)
sqlite3-devel (SQLite)
プリンタ cups-devel
X11 libXft-devel libX11-devel libxcb-devel libXext-devel libXfixes-devel libXrender-devel
libxcb-devel xcb-util-keysyms-devel xcb-util-image-devel xcb-util-wm-devel libXfixes-devel
xcb-util-renderutil-devel libXinerama-devel libXcomposite-devel libXcursor-devel
libXrandr-devel libXtst-devel xcb-proto-devel xcb-util-cursor-devel xcb-util-errors-devel
xcb-util-xrm-devel xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel
xcb-util-keysyms-devel xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel
libxkbcommon-devel libXi-devel libxkbfile-devel xorg-x11-util-devel xorg-x11-libs
X Wayland xwayland-devel
WebEngine 必須 :
flex bison gperf glibc-devel-static libcap-devel readline-devel mozilla-nss-devel mozilla-nspr-devel
libgcrypt20 libgcrypt-devel libgudev-1_0-devel ruby npm16 nodejs16-devel nodejs-common
libdrm-devel pciutils-devel xmlsec1-nss-devel systemd-devel libxshmfence-devel
libqt5-qtsvg-devel libqt5-qtsvg-private-headers-devel

オプション1 :
libxml2-devel libxml++-devel libxslt-devel minizip-devel jsoncpp-devel
liblcms2-devel libevent-devel protobuf-devel libprotobuf-c-devel
pipewire-devel krb5-devel

オプション2(不安定なため注意すること) :
libopus-devel libvpx-devel libpoppler-devel libpoppler-glib-devel
アクセシビリティ at-spi2-atk-devel at-spi2-core-devel
SCTP lksctp-tools-devel -sctp


  • 上表のライブラリを全てインストールする場合
    sudo zypper install \
    bluez bluez-devel bluez-tools \
    openjpeg-devel openjpeg2-devel libjpeg62-devel libpng12-devel libpng16-devel libtiff-devel libmng-devel libwebp-devel libjasper-devel \
    ffmpeg-4-libavdevice-devel ffmpeg-4-private-devel \
    gstreamer-devel gstreamermm-devel gstreamer-plugins-base-devel gstreamer-plugins-bad-devel gstreamer-plugins-rs-devel gstreamer-devtools-devel \
    gnome-video-effects-devel gstreamer-editing-services-devel \
    alsa-devel libpulse-devel openal-soft-devel libgypsy-devel \
    festival-devel libspeechd-devel \
    libserialport-devel libsensors4-devel unixODBC-devel sqlite3-devel cups-devel \
    libXft-devel libX11-devel libxcb-devel libXext-devel libXfixes-devel libXrender-devel libxcb-devel xcb-util-keysyms-devel xcb-util-image-devel \
    xcb-util-wm-devel libXfixes-devel xcb-util-renderutil-devel libXinerama-devel libXcomposite-devel libXcursor-devel libXrandr-devel libXtst-devel \
    xcb-proto-devel xcb-util-cursor-devel xcb-util-errors-devel xcb-util-xrm-devel xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel \
    xcb-util-keysyms-devel xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel libxkbcommon-devel libXi-devel libxshmfence-devel \
    libxkbfile-devel xorg-x11-util-devel xorg-x11-libs xwayland-devel \
    at-spi2-atk-devel at-spi2-core-devel lksctp-tools-devel \
    flex bison gperf libcap-devel readline-devel mozilla-nss-devel mozilla-nspr-devel libdrm-devel \
    libxml2-devel libxml++-devel libxslt-devel minizip-devel jsoncpp-devel liblcms2-devel libevent-devel protobuf-devel libprotobuf-c-devel pipewire-devel krb5-devel \
    libgcrypt20 libgcrypt-devel libgudev-1_0-devel ruby npm-default pciutils-devel xmlsec1-nss-devel systemd-devel \
    libqt5-qtsvg-devel libqt5-qtsvg-private-headers-devel


fliteライブラリおよびlibspeechdライブラリのインストール

もし、fliteライブラリおよびlibspeechdライブラリがパッケージ管理システムに存在しない場合、
fliteライブラリおよびlibspeechdライブラリのビルドに必要なライブラリをインストールする。

sudo zypper install glib2-devel gcc-c+ automake autoconf pkg-config libtool makeinfo texinfo gettext-runtime gettext-tools \
                    dotconf-devel libsndfile-devel python3-pyxdg festival-devel libpulse-devel espeak-devel


fliteライブラリの公式Webサイト、または、fliteライブラリのGithubにアクセスして、ソースコードをダウンロードする。
または、git cloneコマンドを実行して、fliteライブラリのソースコードをダウンロードする。

git clone https://github.com/festvox/flite.git
cd flite


fliteライブラリをビルドおよびインストールする。

./configure --prefix=<fliteライブラリのインストールディレクトリ> --enable-shared
make -j $(nproc)
make get_voices -j $(nproc)
make install


libspeechdライブラリのGithubにアクセスして、ソースコードをダウンロードする。
または、git cloneコマンドを実行して、libspeechdライブラリのソースコードをダウンロードする。

git clone https://github.com/brailcom/speechd.git
cd speechd


libspeechdライブラリをビルドおよびインストールする。

export PATH="/<fliteライブラリのインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="/<fliteライブラリのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"

autoreconf -i

./configure --prefix=<libspeechdライブラリのインストールディレクトリ> --enable-shared --with-flite=<fliteライブラリのインストールディレクトリ>
make -j $(nproc)
sudo make install


ソースコードのダウンロード

Qtのソースコードをダウンロードする。

  • Qt Everywhere (推奨)
    wget https://download.qt.io/official_releases/qt/x.x/x.x.x/single/qt-everywhere-src-x.x.x.tar.xz
    tar xf qt-everywhere-opensource-src-x.x.x.tar.gz

  • Githubの使用
    GithubからQtのソースコードを個別にダウンロードする。
    git clone https://github.com/qt/qt5.git

    ダウンロードしたスーパーリポジトリに移動する。
    cd qt5
    git checkout <Qtのバージョン>
    または
    git checkout <Qtのショートバージョン>

    init-repositoryコマンドは、Qtが提供する指定したモジュールのソースコードを取得するためのツールである。
    スーパーリポジトリは小さく、全てのモジュール(ライブラリ)はgit submodulesとして保持されている。

    利用可能な全てのモジュールについてはQt5の公式Webサイト、ツールについてはinit-repository --helpコマンドまたはQt5のGithubを参照すること。
    ./init-repository --module-subset=essential,qtsvg,qtvirtualkeyboard,qtquickcontrols
    ./init-repository -f --module-subset=qtquick3d,qtquicktimeline,qtwayland # 必要な場合は個別に追加ダウンロードする


ソースコードのビルド

ビルド用ディレクトリを作成する。

mkdir build && cd build


Qtをビルドおよびインストールする。

  • configureスクリプトを使用する場合
    CC=<GCC 8以降のGCC実行ファイルのパス> CXX=<GCC 8以降のG++実行ファイルのパス> \
    ../configure -release \
    -opensource -confirm-license -v \
    -opengl es2 \ # このオプションは不要の可能性あり
    -no-use-gold-linker -recheck-all \ # このオプションは不要の可能性あり
    -no-compile-examples -make libs \
    -skip qtandroidextras -skip qtmacextras -skip qtwinextras \
    -prefix <Qtのインストールディレクトリ> \
    -no-pch

  • qmakeを使用する場合
    オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。
    export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ>

    qmake ../qt-creator/qtcreator.pro
    make qmake_all
    make -j $(nproc)

    もし、Project ERROR: Unknown module(s) in QT: scriptというエラーが出力される場合、以下のコマンドを実行する。
    make -j $(nproc) module-qtscript

  • cmakeを使用する場合
    Qtのソースコードをビルドする。
    cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=<Qtのインストールディレクトリ> <LLVMのインストールディレクトリ> ../qt-creator
    ninja -C ../ build


コンパイルには多くの時間が掛かることに注意する。
(バイナリファイルは、qt-createor-build/binディレクトリに作成される)

Qtのインストール

Qtをインストールする。

make install INSTALL_ROOT=<Qtのインストールディレクトリ>


QtWebEngineのインストール

QtWebEngineを別途インストールする場合は、以下の手順に従う。

  1. もし、必要ならば、Qtの公式WebサイトからQtWebEngineをダウンロードする。
    https://download.qt.io/official_releases/qt/x.x/x.x.x/submodules/qtwebengine-everywhere-src-x.x.x.tar.xz

  2. もし、上記URLからQtWebEngine単体をダウンロードしてビルドする場合は、ローカルヘッダが利用可能であることを確認する。
    find <QtWebEngineのソースコードがあるディレクトリ> -type f -name "*.pr[io]" | xargs sed -i -e 's|INCLUDEPATH += |&$$QTWEBENGINE_ROOT/include |'

  3. QtWebEngineでのジャンボビルドを無効化する。 (標準のジャンボビルドシステムでは、コンパイル時に不明のエラーが出力されるため)
    sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' /<QtWebEngineのソースコードがあるディレクトリ>/src/buildtools/config/common.pri

  4. QtWebEngineは、現在のパブリックリリースよりも遅いリリースを目的としているため、Qt 5.15.2向けとしてビルドするように変更する。
    sed -e '/^MODULE_VERSION/s/5.*/5.15.2/' -i /<QtWebEngineのソースコードがあるディレクトリ>/.qmake.conf

  5. PulseAudioライブラリを実行時ではなく、ビルド時にリンクするようにする。
    これは、新しいPulseAudioでの問題を防ぐことにもなる。
    sed -e '/link_pulseaudio/s/false/true/' -i /<QtWebEngineのソースコードがあるディレクトリ>/src/3rdparty/chromium/media/media_options.gni

  6. ビルドシステムの変更点として、make-j 20等を渡す場合、LFSの環境変数NINJAJOBSの使用でビルドが破壊されることを修正する。
    sed -i 's/NINJAJOBS/NINJA_JOBS/' /<QtWebEngineのソースコードがあるディレクトリ>/src/core/gn_run.pro

  7. Qt WebEngineをビルドおよびインストールする。
    mkdir build && cd build

    export PATH="/<Qtのインストールディレクトリ>/bin:$PATH"; \
    export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"; \
    export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)" \
    export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"

    qmake .. -- -system-ffmpeg -webengine-icu
    make -j $(nproc)
    make install

  8. インストールされたライブラリ依存ファイル(.prlファイル)から、ビルドディレクトリへの参照を削除する。
    find /<Qtのインストールディレクトリ> -name \*.prl -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;



デスクトップエントリの追加

以下のコマンドを実行して、デスクトップエントリを追加する。

vi ~/.local/share/applications/Qt_Creator.desktop


# Qt_Creator.desktopファイル

[Desktop Entry]
Type=Application
Exec="/home/<ユーザ名>/Qt/Tools/QtCreator/bin/qtcreator" %F
Name=Qt Creator <バージョン名>
GenericName=Qt Creator
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;


vi ~/.local/share/applications/Qt_MaintenanceTool.desktop


# Qt_MaintenanceTool.desktopファイル

[Desktop Entry]
Type=Application
Path=/home/<ユーザ名>/Qt
Name=Qt Maintenance Tool
GenericName=Install or uninstall Qt components.
Exec=/home/<ユーザ名>/Qt/MaintenanceTool
Icon=/home/<ユーザ名>/Qt/QtIcon.png
Terminal=false
Categories=Development;Qt;


vi ~/.local/share/applications/Qt_Designer.desktop


# Qt_Designer.desktopファイル

[Desktop Entry]
Type=Application
Name=Qt Designer <バージョン名>
GenericName=Qt Designer
Comment=
Path=
Exec="/home/<ユーザ名>/Qt/<バージョン名>/gcc_64/bin/designer" %F
Icon=/home/<ユーザ名>/.icons/Qt_Designer.png
StartupNotify=true
StartupWMClass=qtdesigner
Terminal=false
TerminalOptions=
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=



日本語入力

専用のインストーラからQtをインストールする場合、Qt Creatorにおいて、日本語が入力できない問題が存在する。

これは、plugins/platforminputcontextsディレクトリにlibfcitxplatforminputcontextplugin.soファイルが欠如しているため、IMEの切り替えができないからである。
そのため、ユーザがlibfcitxplatforminputcontextplugin.soファイルを含むfcitx-qt5ライブラリを、ソースコードからビルドしてインストールする必要がある。

以下に、fcitx-qt5ライブラリをインストールする手順を示す。

  1. まず、Qt Creatorを起動して、[ヘルプ]メインメニューから[About Qt Creator...]を選択、バージョン情報を確認する。
    以下の画像では、Qt Creatorのバージョンは6.0.2、Qt Creatorのビルドに使用されたQt SDKは6.2.2となっている。
    Install Qt 1.png

  2. fcitx-qt5のインストールに必要な依存関係のライブラリをインストールする。
    sudo zypper install extra-cmake-modules libxkbcommon-devel
  3. fcitx-qt5のソースコードをダウンロードする。
    git clone https://github.com/fcitx/fcitx-qt5.git
  4. もし、上記の画像のように、Qt Creatorのビルドに使用されたQt SDKが6の場合、
    Qtメンテナンスツールを起動して、[コンポーネントの追加または削除]から該当するQtのバージョン以降の[Desktop gcc 64-bit]のみをインストールする。

  5. ダウンロードしたfcitx-qt5のディレクトリに移動して、ビルド向けディレクトリを作成する。
    cd fcitx-qt5 && mkdir build && cd build
  6. fcitx-qt5ライブラリをビルドおよびインストールする。
    インストールディレクトリは、自動的に/<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontextsディレクトリにインストールされる。
    # Qt Creatorのビルドに使用されたQt SDKが5の場合
    export PATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/bin:$PATH"
    export CPATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/include:$CPATH"
    export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/lib:$LD_LIBRARY_PATH"
    export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
    export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/<Qt5のバージョン>/gcc_64/lib/pkgconfig:$PKG_CONFIG_PATH"

    # Qt Creatorのビルドに使用されたQt SDKが6の場合
    export PATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/bin:$PATH"
    export CPATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/include:$CPATH"
    export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/lib:$LD_LIBRARY_PATH"
    export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
    export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/<Qt6のバージョン>/gcc_64/lib/pkgconfig:$PKG_CONFIG_PATH"

    # ビルドおよびインストール
    ENABLE_LIBRARY=$(pkg-config --exists fcitx icu-uc && echo ON || echo OFF) && \
    cmake .. -DENABLE_LIBRARY=$ENABLE_LIBRARY \
    -DCMAKE_C_COMPILER=<GCC 8以降:Qt Creatorのビルドに使用されたQt SDKが6の場合> -DCMAKE_CXX_COMPILER=<GCC 8以降:Qt Creatorのビルドに使用されたQt SDKが6の場合> \
    -DCMAKE_BUILD_TYPE=Release \
    -DENABLE_QT4=<Qt Creatorのビルドに使用されたQt SDKが4の場合はon、それ以外はoff> \
    -DENABLE_QT5=<Qt Creatorのビルドに使用されたQt SDKが5の場合はon、それ以外はoff> \
    -DENABLE_QT6=<Qt Creatorのビルドに使用されたQt SDKが6の場合はon、それ以外はoff> \
    -DCMAKE_PREFIX_PATH=/<Qtのインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKのディレクトリ

    make -j $(nproc)
    make install
  7. インストールしたlibfcitxplatforminputcontextplugin.soファイルを、/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontextsディレクトリに配置する。
    これにより、Qt Creator等において、FcitxでのIMEの切り替えができるようになる。

    ただし、Qt Creatorをアップデートする場合は、fcitx-qt5を再インストールする必要があるため注意すること。

    cp /<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \
    /<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts



Felgoのインストール

Felgoとは

Felgoは、Qtフレームワークをベースに大幅に拡張したクロスプラットフォームのソフトウェア開発ソリューションであり、
PC、Android、iOS、Web(WebAssembly)、組み込みシステム等の多くのプラットフォームでネイティブに動作する。

Felgoは、以下に示すような独自のQt/QMLツール、クラウドサービス、Qtを拡張する200以上のAPIを追加したFelgo SDKを提供している。

  • 高度なコントロールとネイティブなナビゲーション
  • テーマとスタイル
  • レイアウト
  • ファイル操作(ローカル/リモート)
  • データ管理とモデル/ビュー
  • マルチメディア
  • RESTネットワーク(※)
  • ネイティブなダイアログと機能


※RESTとは
Webシステムに適用したソフトウェアの設計様式のことであり、パラメータを指定して特定のURLにHTTPでアクセスする時、
XMLやJSONなどで記述されたメッセージが送られてくるようなシステム、および、そのような呼び出し規約のことである。

本来のRESTの設計原則は主として以下の4つの項目からなる。

  • セッション等の状態管理を行わず、やり取りされる情報はそれ自体で完結して解釈することができる。(WebではHTTP自体にはセッション管理の機構はない)
  • 情報を操作する命令の体系が予め定義・共有されている。(WebではHTTPメソッドに相当)
  • 全ての情報は汎用的な構文で一意に識別される。(URL/URIに相当)
  • 情報の一部として、別の状態や別の情報への参照を含めることができる。(ハイパーメディア的な書式で情報を表現する。HTMLやXMLに相当)


Felgoのインストール

既存のQtにFelgoを拡張機能として追加することができる。

まず、FelgoのQt Marketplaceにアクセスおよびログインした後、[Qt extension]を選択する。
必要な情報を入力して、[Continue to payment]を選択する。

次に、Qtメンテナンスツールを起動して、[コンポーネントの選択]画面の[Marketplace]項目でFelgoを選択およびインストールする。
もし、Felgoをインストールできない場合は、Felgoインストーラを使用して、既存のQtとは別にFelgoをインストールする。

※注意
最新版のQtに対応したFelgoがまだリリースされていない場合は、Felgoはビルドキットに追加されない。

Felgoのアカウントの削除する場合は、Felgoの公式Webサイトにアクセスおよびログインする。
アカウント設定ページ右の[Edit] - アカウント設定ページ下の[Account Termination Request] - [Delete Account]ボタンを押下する。


Raspberry Piのクロスコンパイル

Raspberry Piでクロスコンパイルを行う場合、インストール - Qt5 Raspberry Piのページを参照すること。


PinePhoneのクロスコンパイル

Raspberry Piでクロスコンパイルを行う場合、インストール_-_Qt5_PinePhoneのページを参照すること。