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

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
編集の要約なし
(文字列「presire220a-22」を「presire2-22」に置換)
 
(同じ利用者による、間の368版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
ここでは、openSUSE Leap 15.1に最新版のQt 5.14(2020/01/26現在)をインストールする方法を記載する。<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>
<br><br>


== 依存ライブラリのインストール ==
== Qt ライセンス ==
Qt 5.14依存のライブラリをインストールする。<br>
Qtは、様々なユーザのニーズに対応できるよう、様々なライセンスオプションが用意されている。<br>
sudo zypper install Mesa-devel Mesa-KHR-devel
<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>


== 最新版のQtのダウンロード ==
== 通常のインストール ==
==== 依存関係のライブラリのインストール ====
Qtの依存関係のライブラリをインストールする。<br>
これらのライブラリは不要な可能性がある。(調査中)<br>
# 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
<br>
==== Qtのダウンロード ====
最新版のQtをダウンロードするため、以下のコマンドを実行する。<br>
最新版のQtをダウンロードするため、以下のコマンドを実行する。<br>
ファイル情報を知りたい場合はこの[http://download.qt.io/official_releases/ Webサイト]を参照する。<br>
ファイル情報を知りたい場合はこの[http://download.qt.io/official_releases/ Webサイト]を参照する。<br>
14行目: 53行目:
ダウンロードしたファイルのアクセス権限を変更する。<br>
ダウンロードしたファイルのアクセス権限を変更する。<br>
  chmod +x qt-unified-linux-x64-online.run
  chmod +x qt-unified-linux-x64-online.run
<br>
==== Qtのインストール ====
/usr/localディレクトリ等にインストールする場合は、スーパーユーザでインストールする。<br>
ホームディレクトリにインストールする場合は、ローカルユーザでインストールする。<br>
<br>
次に、GCCおよびmake、付随するライブラリをインストールする。<br>
# RHEL
sudo dnf groupinstall "Development tools"
# SUSE
sudo zypper install --type pattern devel_basis
<br>
Qtをインストールする。<br>
./qt-unified-linux-x64-online.run
<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>


== Qt 5.14のインストール ==
== ソースコードからインストール ==
まず、スーパーユーザに変更する。<br>
==== 必須環境 ====
ホームディレクトリにインストールする際はローカルユーザでインストールする。<br>
* Qt 5.14.0以降
  su
* Qt WebEngine module for QtWebEngine based help viewer
次に、GCCおよびmake、付随するライブラリをインストールする。<br>
* GCC 7以降
  zypper install --type pattern devel_basis
* オプション : CMake
Qt 5.14をインストールする。<br>
*: CMakeを使用してLLVM / ClangとQt Creatorをビルドする時に必要である。
  ./qt-unified-linux-x64-online.run
* オプション : Ninja
セットアップ画面に従ってインストールを実行する。<br>
*: CMakeを使用してビルドする時に必要である。
* オプション : LLVM / Clang 8.0.0以降<br>
*: Clang Code Model、Clang Tools、ClangFormat、Clang PCH Manager、Clang Refactoringプラグインに必要である。
*: LLVM C++ APIは互換性を保証するものではないので、それ以降のバージョンがコンパイルできない場合は、そのバージョンをサポートしていない。
* オプション : Qbs 1.7.x
*: Qtのソースコードには、Qbs自身も含まれている。
<br>
また、Qtをビルドする時のオプション設定を以下に記載する。<br>
# オプション : 環境変数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=<ライブラリを保持するディレクトリ>
<br>
==== 依存関係のライブラリのインストール ====
Qtのソースコードをコンパイルするために必要な依存関係のライブラリをインストールする。<br>
  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
<br>
SUSEにおいて、マルチメディア関連やBluetooth等を使用したソフトウェアを開発する場合、下表に示すパッケージをインストールする。<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|+ SUSE向け その他のライブラリ(オプション)
|-
! style="background-color:#66CCFF;" | 機能
! style="background-color:#66CCFF;" | インストールするライブラリ
! style="background-color:#66CCFF;" | configureスクリプトのオプション
|-
| Bluetooth || bluez bluez-devel bluez-tools ||
|-
| 画像 || openjpeg-devel openjpeg2-devel libjpeg62-devel libpng12-devel libpng16-devel<br>libtiff-devel libmng-devel libwebp-devel libjasper-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
|
|-
| 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)<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>
 
==== ソースコードのダウンロード ====
Qtのソースコードをダウンロードする。<br>
* 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>
mkdir build && cd build
<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を使用する場合
*: オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。
*: <code>export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ></code>
*: <br>
*: <code>qmake ../qt-creator/qtcreator.pro</code>
*: <code>make qmake_all</code>
*: <code>make -j $(nproc)</code>
*: <br>
*: もし、<code>Project ERROR: Unknown module(s) in QT: script</code>というエラーが出力される場合、以下のコマンドを実行する。
*: <code>make -j $(nproc) module-qtscript</code>
*: <br>
* cmakeを使用する場合
*: Qtのソースコードをビルドする。
*: <code>cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=<Qtのインストールディレクトリ> <LLVMのインストールディレクトリ> ../qt-creator</code>
*: <code>ninja -C ../ build</code>
<br>
コンパイルには多くの時間が掛かることに注意する。<br>
(バイナリファイルは、qt-createor-build/binディレクトリに作成される)<br>
<br>
 
==== Qtのインストール ====
Qtをインストールする。<br>
  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]
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;
<br>
vi ~/.local/share/applications/Qt_MaintenanceTool.desktop
<br>
# Qt_MaintenanceTool.desktopファイル
   
   
  [Desktop Entry]
  [Desktop Entry]
  Type=Application
  Type=Application
  Encoding=UTF-8
  Path=/home/<ユーザ名>/Qt
  Name=Qt 5 Creator
  Name=Qt Maintenance Tool
  GenericName=Qt IDE
  GenericName=Install or uninstall Qt components.
Comment=Qt 5 IDE
  Exec=/home/<ユーザ名>/Qt/MaintenanceTool
  Exec=/opt/Qt/Tools/QtCreator/bin/qtcreator
  Icon=/home/<ユーザ名>/Qt/QtIcon.png
  Icon=/opt/Qt/QtIcon.png
Categories=Development;IDE;
  Terminal=false
  Terminal=false
  Keywords=qt;
  Categories=Development;Qt;
<br>
vi ~/.local/share/applications/Qt_Designer.desktop
<br>
# 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=
<br><br>
 
== 日本語入力 ==
専用のインストーラからQtをインストールする場合、Qt Creatorにおいて、日本語が入力できない問題が存在する。<br>
<br>
これは、plugins/platforminputcontextsディレクトリにlibfcitxplatforminputcontextplugin.soファイルが欠如しているため、IMEの切り替えができないからである。<br>
そのため、ユーザがlibfcitxplatforminputcontextplugin.soファイルを含むfcitx-qt5ライブラリを、ソースコードからビルドしてインストールする必要がある。<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>
<br><br>
== Felgoのインストール ==
==== Felgoとは ====
Felgoは、Qtフレームワークをベースに大幅に拡張したクロスプラットフォームのソフトウェア開発ソリューションであり、<br>
PC、Android、iOS、Web(WebAssembly)、組み込みシステム等の多くのプラットフォームでネイティブに動作する。<br>
<br>
Felgoは、以下に示すような独自のQt/QMLツール、クラウドサービス、Qtを拡張する200以上のAPIを追加したFelgo SDKを提供している。<br>
* 高度なコントロールとネイティブなナビゲーション
* テーマとスタイル
* レイアウト
* ファイル操作(ローカル/リモート)
* データ管理とモデル/ビュー
* マルチメディア
* RESTネットワーク(※)
* ネイティブなダイアログと機能
<br>
※RESTとは<br>
Webシステムに適用したソフトウェアの設計様式のことであり、パラメータを指定して特定のURLにHTTPでアクセスする時、<br>
XMLやJSONなどで記述されたメッセージが送られてくるようなシステム、および、そのような呼び出し規約のことである。<br>
<br>
本来のRESTの設計原則は主として以下の4つの項目からなる。<br>
* セッション等の状態管理を行わず、やり取りされる情報はそれ自体で完結して解釈することができる。(WebではHTTP自体にはセッション管理の機構はない)
* 情報を操作する命令の体系が予め定義・共有されている。(WebではHTTPメソッドに相当)
* 全ての情報は汎用的な構文で一意に識別される。(URL/URIに相当)
* 情報の一部として、別の状態や別の情報への参照を含めることができる。(ハイパーメディア的な書式で情報を表現する。HTMLやXMLに相当)
<br>
==== Felgoのインストール ====
既存のQtにFelgoを拡張機能として追加することができる。<br>
<br>
まず、[https://marketplace.qt.io/products/felgo FelgoのQt Marketplace]にアクセスおよびログインした後、[Qt extension]を選択する。<br>
必要な情報を入力して、[Continue to payment]を選択する。<br>
<br>
次に、Qtメンテナンスツールを起動して、[コンポーネントの選択]画面の[Marketplace]項目でFelgoを選択およびインストールする。<br>
もし、Felgoをインストールできない場合は、Felgoインストーラを使用して、既存のQtとは別にFelgoをインストールする。<br>
<br>
<u>※注意</u><br>
<u>最新版のQtに対応したFelgoがまだリリースされていない場合は、Felgoはビルドキットに追加されない。</u><br>
<br>
Felgoのアカウントの削除する場合は、[https://felgo.com/developers Felgoの公式Webサイト]にアクセスおよびログインする。<br>
アカウント設定ページ右の[Edit] - アカウント設定ページ下の[Account Termination Request] - [Delete Account]ボタンを押下する。<br>
<br><br>
== Raspberry Piのクロスコンパイル ==
Raspberry Piでクロスコンパイルを行う場合、[[インストール - Qt5 Raspberry Pi]]のページを参照すること。<br>
<br><br>
== PinePhoneのクロスコンパイル ==
Raspberry Piでクロスコンパイルを行う場合、[[インストール_-_Qt5_PinePhone]]のページを参照すること。<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__
[[カテゴリ:SUSE]]
[[カテゴリ: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のページを参照すること。