| (同じ利用者による、間の19版が非表示) | |||
| 11行目: | 11行目: | ||
! colspan="3" style="background-color:#44CC99;" | 参考書 | ! colspan="3" style="background-color:#44CC99;" | 参考書 | ||
|- style="text-align: center;" | |- style="text-align: center;" | ||
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag= | | style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag=presire2-22&linkId=3053b20cf3556f8bb315f4f3fd04fdbe&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61OPCSNS4VL._SL1180_.jpg" ></a></html><br>[https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag=presire2-22&linkId=3053b20cf3556f8bb315f4f3fd04fdbe&language=ja_JP&ref_=as_li_ss_tl Introducing Qt 6<br>C++でモバイルとデスクトップ向けのアプリとゲームを作ることを学ぶ]</center> | ||
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag= | | style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag=presire2-22&linkId=07b919e3516320e5ca209c74e325c740&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61meHwEaCLS._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag=presire2-22&linkId=07b919e3516320e5ca209c74e325c740&language=ja_JP&ref_=as_li_ss_tl Cross-Platform Development with Qt 6 and Modern C++<br>プラットフォーム依存性を気にすることなく、<br>モダンなグラフィカルユーザーインターフェースを持つアプリケーションを設計・構築する]</center> | ||
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag= | | style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag=presire2-22&linkId=505bfbc1b686c54000759827f92a0c5d&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/51J026p9D8S._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag=presire2-22&linkId=505bfbc1b686c54000759827f92a0c5d&language=ja_JP&ref_=as_li_ss_tl A Guide to Qt 6<br>Qt 6の初心者向けガイド]</center> | ||
|} | |} | ||
</center> | </center> | ||
| 99行目: | 99行目: | ||
vulkan-headers # Vulkanを使用するプロジェクト、および、Vulkanバックエンドを利用する可能性のある場合 | vulkan-headers # Vulkanを使用するプロジェクト、および、Vulkanバックエンドを利用する可能性のある場合 | ||
または | または | ||
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 \ | ||
vulkan-headers # | xcb-util-cursor-devel xcb-util-image-devel xcb-util-renderutil-devel \ | ||
vulkan-headers # Vulkanを使用するプロジェクト、あるいは、Vulkanバックエンドを使用する場合 | |||
<br> | <br> | ||
* Qt 6におけるVulkan headerの必要性 | * Qt 6におけるVulkan headerの必要性 | ||
| 131行目: | 132行目: | ||
最新版のQtをダウンロードするため、以下のコマンドを実行する。<br> | 最新版のQtをダウンロードするため、以下のコマンドを実行する。<br> | ||
ファイル情報を知りたい場合はこの[http://download.qt.io/official_releases/ Webサイト]を参照する。<br> | ファイル情報を知りたい場合はこの[http://download.qt.io/official_releases/ Webサイト]を参照する。<br> | ||
wget | # x64向け | ||
wget https://download.qt.io/official_releases/online_installers/qt-online-installer-linux-x64-online.run | |||
# ARM向け | |||
https://download.qt.io/official_releases/online_installers/qt-online-installer-linux-arm64-online.run | |||
<br> | |||
ダウンロードしたファイルのアクセス権限を変更する。<br> | ダウンロードしたファイルのアクセス権限を変更する。<br> | ||
chmod u+x qt-unified-linux-x64-online.run | chmod u+x qt-unified-linux-x64-online.run | ||
<br> | <br> | ||
==== Qtのインストール ==== | ==== Qtのインストール ==== | ||
/usr/localディレクトリ等にインストールする場合は、スーパーユーザでインストールする。<br> | /usr/localディレクトリ等にインストールする場合は、スーパーユーザでインストールする。<br> | ||
| 225行目: | 232行目: | ||
* qmakeを使用する場合 | * qmakeを使用する場合 | ||
*: オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。 | *: オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。 | ||
*: < | *: <syntaxhighlight lang="text"> | ||
export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ> | |||
qmake ../qt-creator/qtcreator.pro | |||
make qmake_all | |||
make -j $(nproc) | |||
</syntaxhighlight> | |||
*: <br> | |||
*: もし、<code>Project ERROR: Unknown module(s) in QT: script</code>というエラーが出力される場合、以下のコマンドを実行する。 | *: もし、<code>Project ERROR: Unknown module(s) in QT: script</code>というエラーが出力される場合、以下のコマンドを実行する。 | ||
*: < | *: <pre>make -j $(nproc) module-qtscript</pre> | ||
*: <br> | *: <br> | ||
* cmakeを使用する場合 | * cmakeを使用する場合 | ||
*: Qtのソースコードをビルドする。 | *: Qtのソースコードをビルドする。 | ||
*: < | *: <syntaxhighlight lang="text"> | ||
cmake -G Ninja \ | |||
-DCMAKE_BUILD_TYPE=Release \ | |||
-DCMAKE_PREFIX_PATH=<Qtのインストールディレクトリ>; <LLVMのインストールディレクトリ> \ | |||
../qt-creator | |||
cmake --build .. --parallel $(nproc) | |||
</syntaxhighlight> | |||
<br> | <br> | ||
コンパイルには時間が掛かることに注意する。(バイナリファイルは、qt-createor-build/binディレクトリに作成される)<br> | コンパイルには時間が掛かることに注意する。(バイナリファイルは、qt-createor-build/binディレクトリに作成される)<br> | ||
<br> | <br> | ||
==== Qtのインストール ==== | ==== Qtのインストール ==== | ||
Qtをインストールする。<br> | Qtをインストールする。<br> | ||
| 273行目: | 291行目: | ||
vi ~/.local/share/applications/Qt_Creator.desktop | vi ~/.local/share/applications/Qt_Creator.desktop | ||
<br> | <br> | ||
<syntaxhighlight lang="ini"> | |||
# Qt_Creator.desktopファイル | # Qt_Creator.desktopファイル | ||
| 285行目: | 304行目: | ||
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; | ||
</syntaxhighlight> | |||
<br> | <br> | ||
vi ~/.local/share/applications/Qt_MaintenanceTool.desktop | vi ~/.local/share/applications/Qt_MaintenanceTool.desktop | ||
<br> | <br> | ||
<syntaxhighlight lang="ini"> | |||
# Qt_MaintenanceTool.desktopファイル | # Qt_MaintenanceTool.desktopファイル | ||
| 299行目: | 320行目: | ||
Terminal=false | Terminal=false | ||
Categories=Development;Qt; | Categories=Development;Qt; | ||
</syntaxhighlight> | |||
<br> | <br> | ||
vi ~/.local/share/applications/Qt_Designer.desktop | vi ~/.local/share/applications/Qt_Designer.desktop | ||
<br> | <br> | ||
<syntaxhighlight lang="ini"> | |||
# Qt_Designer.desktopファイル | # Qt_Designer.desktopファイル | ||
| 322行目: | 345行目: | ||
X-KDE-SubstituteUID=false | X-KDE-SubstituteUID=false | ||
X-KDE-Username= | X-KDE-Username= | ||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
| 338行目: | 362行目: | ||
#: <br> | #: <br> | ||
# fcitx-qt5のインストールに必要な依存関係のライブラリをインストールする。 | # fcitx-qt5のインストールに必要な依存関係のライブラリをインストールする。 | ||
#: < | #: <pre>sudo zypper install extra-cmake-modules libxkbcommon-devel</pre> | ||
# fcitx-qt5のソースコードをダウンロードする。 | # fcitx-qt5のソースコードをダウンロードする。 | ||
#: < | #: <pre>git clone https://github.com/fcitx/fcitx-qt5.git</pre> | ||
# もし、上記の画像のように、<u>Qt Creatorのビルドに使用されたQt SDKが6の場合、</u><br><u>Qtメンテナンスツールを起動して、[コンポーネントの追加または削除]から該当するQtのバージョン以降の[Desktop gcc 64-bit]のみをインストールする。</u> | # もし、上記の画像のように、<u>Qt Creatorのビルドに使用されたQt SDKが6の場合、</u><br><u>Qtメンテナンスツールを起動して、[コンポーネントの追加または削除]から該当するQtのバージョン以降の[Desktop gcc 64-bit]のみをインストールする。</u> | ||
#: <br> | #: <br> | ||
# ダウンロードしたfcitx-qt5のディレクトリに移動して、ビルド向けディレクトリを作成する。 | # ダウンロードしたfcitx-qt5のディレクトリに移動して、ビルド向けディレクトリを作成する。 | ||
#: < | #: <pre>cd fcitx-qt5 && mkdir build && cd build</pre> | ||
# fcitx-qt5ライブラリをビルドおよびインストールする。<br><u>インストールディレクトリは、自動的に/<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontextsディレクトリにインストールされる。</u> | # fcitx-qt5ライブラリをビルドおよびインストールする。<br><u>インストールディレクトリは、自動的に/<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontextsディレクトリにインストールされる。</u> | ||
#* Qt Creatorのビルドに使用されたQt SDKが5の場合 | #* Qt Creatorのビルドに使用されたQt SDKが5の場合 | ||
#*: < | #*: <syntaxhighlight lang="sh"> | ||
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" | |||
</syntaxhighlight> | |||
#*: <br> | #*: <br> | ||
#* Qt Creatorのビルドに使用されたQt SDKが6の場合 | #* Qt Creatorのビルドに使用されたQt SDKが6の場合 | ||
#*: < | #*: <syntaxhighlight lang="sh"> | ||
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" | |||
</syntaxhighlight> | |||
#*: <br> | #*: <br> | ||
#* ビルドおよびインストール | #* ビルドおよびインストール | ||
#*: < | #*: <syntaxhighlight lang="text"> | ||
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 5のインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKが5の場合 | |||
-DCMAKE_PREFIX_PATH=/<Qt 6のインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKが6の場合 | |||
# | |||
make -j $(nproc) | |||
make install | |||
</syntaxhighlight> | |||
#: <br> | |||
# インストールしたlibfcitxplatforminputcontextplugin.soファイルを、/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontextsディレクトリに配置する。<br>これにより、Qt Creator等において、FcitxでのIMEの切り替えができるようになる。<br><br><u>ただし、Qt Creatorをアップデートする場合は、fcitx-qt5を再インストールする必要があるため注意すること。</u> | # インストールしたlibfcitxplatforminputcontextplugin.soファイルを、/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontextsディレクトリに配置する。<br>これにより、Qt Creator等において、FcitxでのIMEの切り替えができるようになる。<br><br><u>ただし、Qt Creatorをアップデートする場合は、fcitx-qt5を再インストールする必要があるため注意すること。</u> | ||
#: <br> | #: <br> | ||
#: < | #: <syntaxhighlight lang="text"> | ||
cp /<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \ | |||
/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts | |||
</syntaxhighlight> | |||
<br> | <br> | ||
| 385行目: | 419行目: | ||
#: <br> | #: <br> | ||
# fcitx-qt5のインストールに必要な依存関係のライブラリをインストールする。 | # fcitx-qt5のインストールに必要な依存関係のライブラリをインストールする。 | ||
#: < | #: <syntaxhighlight lang="text">sudo zypper install cmake extra-cmake-modules libxkbcommon-devel fcitx5-devel</syntaxhighlight> | ||
# fcitx-qt5のソースコードをダウンロードする。 | # fcitx-qt5のソースコードをダウンロードする。 | ||
#: < | #: <syntaxhighlight lang="text">git clone https://github.com/fcitx/fcitx5-qt</syntaxhighlight> | ||
# もし、上記の画像のように、<u>Qt Creatorのビルドに使用されたQt SDKが6の場合、</u><br><u>Qtメンテナンスツールを起動して、[コンポーネントの追加または削除]から該当するQtのバージョン以降の[Desktop gcc 64-bit]のみをインストールする。</u> | # もし、上記の画像のように、<u>Qt Creatorのビルドに使用されたQt SDKが6の場合、</u><br><u>Qtメンテナンスツールを起動して、[コンポーネントの追加または削除]から該当するQtのバージョン以降の[Desktop gcc 64-bit]のみをインストールする。</u> | ||
#: <br> | #: <br> | ||
# ダウンロードしたfcitx5-qtのディレクトリに移動して、ビルド向けディレクトリを作成する。 | # ダウンロードしたfcitx5-qtのディレクトリに移動して、ビルド向けディレクトリを作成する。 | ||
#: < | #: <syntaxhighlight lang="text">cd fcitx5-qt && mkdir build && cd build</syntaxhighlight> | ||
# fcitx5-qtライブラリをビルドおよびインストールする。<br><u>インストールディレクトリは、自動的に/<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontextsディレクトリにインストールされる。</u> | # fcitx5-qtライブラリをビルドおよびインストールする。<br><u>インストールディレクトリは、自動的に/<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontextsディレクトリにインストールされる。</u> | ||
#* Qt Creatorのビルドに使用されたQt SDKが5の場合 | #* Qt Creatorのビルドに使用されたQt SDKが5の場合 | ||
#*: < | #*: <syntaxhighlight lang="sh"> | ||
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" | |||
</syntaxhighlight> | |||
#*: <br> | #*: <br> | ||
#* Qt Creatorのビルドに使用されたQt SDKが6の場合 | #* Qt Creatorのビルドに使用されたQt SDKが6の場合 | ||
#*: < | #*: <syntaxhighlight lang="sh"> | ||
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" | |||
</syntaxhighlight> | |||
#*: <br> | #*: <br> | ||
#* ビルドおよびインストール | #* ビルドおよびインストール | ||
#*: < | #*: <syntaxhighlight lang="text"> | ||
cmake .. -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_X11=ON \ # X11を使用している場合 | |||
-DENABLE_QT6_WAYLAND_WORKAROUND=ON \ # Waylandを使用している場合 | |||
-DBUILD_ONLY_PLUGIN=ON \ # プラグインのみをインストールする場合 | |||
-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 5のインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKが5の場合 | |||
# | -DCMAKE_PREFIX_PATH=/<Qt 6のインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKが6の場合 | ||
# または | |||
export 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 5のインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKが5の場合 | |||
-DCMAKE_PREFIX_PATH=/<Qt 6のインストールディレクトリ>/<バージョン>/gcc_64 # Qt Creatorのビルドに使用されたQt SDKが6の場合 | |||
make -j $(nproc) | |||
make install | |||
</syntaxhighlight> | |||
#: <br> | |||
# インストールしたlibfcitxplatforminputcontextplugin.soファイルを、/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontextsディレクトリに配置する。<br>これにより、Qt Creator等において、FcitxでのIMEの切り替えができるようになる。<br><br><u>ただし、Qt Creatorをアップデートする場合は、fcitx-qt5を再インストールする必要があるため注意すること。</u> | # インストールしたlibfcitxplatforminputcontextplugin.soファイルを、/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontextsディレクトリに配置する。<br>これにより、Qt Creator等において、FcitxでのIMEの切り替えができるようになる。<br><br><u>ただし、Qt Creatorをアップデートする場合は、fcitx-qt5を再インストールする必要があるため注意すること。</u> | ||
#: <br> | #: <br> | ||
#: < | #: <syntaxhighlight lang="text"> | ||
cp /<Qtのインストールディレクトリ>/<バージョン>/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so \ | |||
/<Qtのインストールディレクトリ>/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
| 506行目: | 563行目: | ||
== Raspberry Piのクロスコンパイル == | == Raspberry Piのクロスコンパイル == | ||
Raspberry Piでクロスコンパイルを行う場合、[[インストール_-_Qt6_Raspberry_Pi]]のページを参照すること。<br> | Raspberry Piでクロスコンパイルを行う場合、[[インストール_-_Qt6_Raspberry_Pi]]のページを参照すること。<br> | ||
<br><br> | |||
== Banana Pi F3のクロスコンパイル == | |||
Banana Pi F3でクロスコンパイルを行う場合、[[インストール - Qt6 Banana Pi (RISC-V)]]のページを参照すること。<br> | |||
<br><br> | <br><br> | ||
== PinePhoneのクロスコンパイル == | == PinePhoneのクロスコンパイル == | ||
PinePhoneでクロスコンパイルを行う場合、[[インストール_-_Qt6_PinePhone]]のページを参照すること。<br> | PinePhoneでクロスコンパイルを行う場合、[[インストール_-_Qt6_PinePhone]]のページを参照すること。<br> | ||
<br><br> | |||
== OpenSSL 3のインストールおよび設定 == | |||
Qt 6において、QNetworkAccessManagerクラス等を使用する場合、以下に示すようなエラーが発生する場合がある。<br> | |||
qt.tlsbackend.ossl: Incompatible version of OpenSSL (built with OpenSSL >= 3.x, runtime version is < 3.x) | |||
<br> | |||
これは、Qt 6が古いバージョンのOpenSSLを参照しているために発生する。<br> | |||
これを解決するには、QtオンラインインストーラからOpenSSL 3.x.xのソースコードをダウンロードして、ビルドおよびインストールすることを推奨する。<br> | |||
<br> | |||
まず、Qtオンラインインストーラを起動して、[コンポーネントの選択]画面から[Qt] - [Developer and Designer Tools] - [OpenSSL 3.x.x Toolkit]にチェックを入力する。<br> | |||
[次へ]ボタンを押下して、OpenSSL 3.x.xのソースコードをダウンロードする。<br> | |||
<br> | |||
ダウンロードが完了した後、/<Qtのインストールディレクトリ>/Tools/OpenSSLv3/srcディレクトリに移動する。<br> | |||
cd /<Qtのインストールディレクトリ>/Tools/OpenSSLv3/src | |||
<br> | |||
OpenSSL 3.x.xをビルドおよびインストールする。<br> | |||
mkdir build && cd build | |||
../Configure --prefix=<OpenSSL3のインストールディレクトリ> | |||
make -j $(nproc) | |||
make install | |||
<br> | |||
OpenSSL 3.x.xをQt Creatorで使用するため、環境変数を設定する。<br> | |||
# Qt Creatorを起動する。 | |||
# Qt Creatorの画面左にある[プロジェクト]を選択する。 | |||
# [ビルドと実行]から、該当するキットの[実行]を選択する。 | |||
# [実行環境]セクションで、[環境]セクションから[この実行構成用の基本環境:]プルダウンから[ビルド時の環境変数]を選択して、以下に示す環境変数を追加する。 | |||
PATH=+/<OpenSSL3のインストールディレクトリ>/bin | |||
LD_LIBRARY_PATH=+/<OpenSSL3のインストールディレクトリ>/lib64 | |||
PKG_CONFIG_PATH=+/<OpenSSL3のインストールディレクトリ>/lib64/pkgconfig | |||
OPENSSL_CONF=/<OpenSSL3のインストールディレクトリ>/ssl/openssl.cnf | |||
<br> | |||
[[ファイル:Install Qt 2.png|フレームなし|中央]] | |||
<br> | |||
または、以下に示す方法でもOpenSSL 3.x.xを設定することができる。<br> | |||
# [ビルドと実行]から、該当するキットの[ビルド]を選択する。 | |||
# [CMake]セクションの[Base environment the CMake configure step:]プルダウンから[System Environment]を選択して、以下に示す環境変数を追加する。 | |||
PATH=+/<OpenSSL3のインストールディレクトリ>/bin | |||
LD_LIBRARY_PATH=+/<OpenSSL3のインストールディレクトリ>/lib64 | |||
PKG_CONFIG_PATH=+/<OpenSSL3のインストールディレクトリ>/lib64/pkgconfig | |||
OPENSSL_CONF=/<OpenSSL3のインストールディレクトリ>/ssl/openssl.cnf | |||
<br> | |||
[[ファイル:Install_Qt_3.png|フレームなし|中央]] | |||
<br><br> | |||
== メニューバーの表示 / 非表示 == | |||
メニューバーの表示 / 非表示を切り替えて、画面上のスペースを節約することができる。<br> | |||
<br> | |||
[表示]メインメニュー - [メニューバーを表示]チェックボックスの選択を解除する。<br> | |||
メニューバーを再度表示するには、[Ctrl] + [Alt] + [M]キーを同時押下する。<br> | |||
<br><br> | |||
== Qt CreatorとOpenCodeをACPで連携 == | |||
Qt Creator 20以降では、ACP Clientを使用してOpenCodeをAIエージェントとして接続できる。<br> | |||
Linux環境では、Qt CreatorからOpenCodeを起動して、Qtプロジェクトの作業ディレクトリを指定して利用する。<br> | |||
<br> | |||
==== ACPとは ==== | |||
ACP (Agent Client Protocol) は、Zed Industriesが主導するAIエージェント連携用のプロトコルである。<br> | |||
<br> | |||
LSPがエディタと言語サーバ間の通信を標準化したように、ACPはエディタとAIエージェント間の通信を標準化する。<br> | |||
現行の安定版はACP v1であり、JSON-RPC 2.0 over stdioを使用して通信する。<br> | |||
<br> | |||
主なメッセージには、初期化、セッション作成、プロンプト送信、セッション更新、キャンセル、認証、権限要求がある。<br> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|+ ACPとMCPの違い | |||
! プロトコル !! 接続対象 !! 使用例 | |||
|- | |||
| ACP || IDE / エディタとAIエージェント || Qt CreatorとOpenCode<br>Jetbrains IDEとOpenCode | |||
|- | |||
| MCP || AIエージェントとツール・データ || OpenCodeとGitHubやデータベース | |||
|- | |||
| 統合構成 || ACPとMCPの両方を使用 || Qt Creator - ACP - OpenCode - MCP - 外部ツール | |||
|} | |||
</center> | |||
<br> | |||
ACPとMCPは別のプロトコルであり、互いに補完する関係にある。<br> | |||
<br> | |||
OpenCodeは、ACP ServerとしてQt Creatorから接続され、MCP Serverを通じて外部ツールやQt Creatorの機能を利用できる。<br> | |||
<br> | |||
==== 前提条件 ==== | |||
* Qt Creator 20以降 | |||
*: Qt Creator 16、17、18、19ではACP Clientを利用できない。 | |||
* OpenCode | |||
*: ACP Serverとして動作するOpenCodeをインストールする。 | |||
* AIプロバイダーの認証情報 | |||
*: OpenCodeが使用するLLMプロバイダーの認証情報を準備する。 | |||
* Qtプロジェクト | |||
*: CMake等で構成されたQtプロジェクトを用意する。 | |||
<br> | |||
==== OpenCodeのインストール ==== | |||
OpenCodeのインストールを知りたい場合は、[インストール - OpenCode]のページを参照すること。<br> | |||
<br> | |||
# ターミナルを起動する。 | |||
# インストールスクリプトを実行する。 | |||
#: <pre>curl -fsSL https://opencode.ai/install | bash</pre> | |||
# インストール後、実行ファイルの場所とバージョンを確認する。 | |||
#: <syntaxhighlight lang="text"> | |||
command -v opencode | |||
opencode --version | |||
</syntaxhighlight> | |||
# ACP Serverが起動できることを確認する。 | |||
#: <pre>opencode acp --help</pre> | |||
<br> | |||
別のインストール方法として、npmまたはHomebrewも使用できる。<br> | |||
<br> | |||
* npmを使用する場合 | |||
*: <pre>npm install -g opencode-ai</pre> | |||
* Homebrewを使用する場合 | |||
*: <pre>brew install anomalyco/tap/opencode</pre> | |||
<br> | |||
OpenCodeは、<code>opencode acp</code> コマンドでACP Serverとして動作する。<br> | |||
<code>--cwd</code> オプションで作業ディレクトリを指定、<code>--port</code> オプション や <code>--mdns</code> オプション等も利用できる。<br> | |||
<br> | |||
ACP経由では、ファイル操作、ターミナル操作、MCP Server、<u>AGENTS.md</u> ファイルの設定等を利用できる。<br> | |||
<br> | |||
ただし、<code>/undo</code> コマンド と <code>/redo</code> コマンドはACP経由ではサポートされない。<br> | |||
<br> | |||
==== Qt Creator側の設定 ==== | |||
Qt CreatorのACP Clientを有効にして、ACP ServersにOpenCodeを登録する。<br> | |||
<br> | |||
===== ACP Clientの有効化 ===== | |||
ACP Clientは、Qt Creator 20以降で利用可能な拡張機能であり、初期状態では実験的拡張機能として無効化されている場合があるため、Extensionsから有効化する。<br> | |||
<br> | |||
# Qt Creatorを起動する。 | |||
# Qt Creatorの左下にあるモードセレクターから[Extensions]を選択する。 | |||
# 拡張機能一覧から <u>ACP Client</u> を選択して、[Active]スイッチを有効にする。 | |||
# [Restart Now]ボタンを押下して、Qt Creatorを再起動する。 | |||
<br> | |||
有効化後、[ツール]メニューバー - [ACP Client]メニュー - [Show Agentic AI Chat in Side Panel]サブメニューを選択して、サイドパネルにAgentic AI Chatが表示されることを確認する。<br> | |||
<br> | |||
ACP通信の詳細を確認する場合は、[ツール]メニューバー - [ACP Client]メニュー - [Inspect ACP Client]サブメニューを選択する。<br> | |||
<br> | |||
ACP Clientの項目が表示されない場合は、Qt Creatorのバージョンと拡張機能の有効状態を確認する。<br> | |||
<br> | |||
===== ACP ServersへのOpenCode登録 ===== | |||
# Qt Creatorの設定画面を開く。 | |||
# [編集]メニューバー - [Preferences...]を選択して、画面左ペインから[AI] - 画面右ペイン[ACP Servers]タブを選択する。 | |||
# [追加]ボタンを押下して、以下に示す値を入力する。 | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
! 項目 !! 設定値 | |||
|- | |||
| Name || 任意の名前<br>例: <code>OpenCode</code> | |||
|- | |||
| Executable || OpenCodeのフルパスを推奨<br>例: <code>/home/<ユーザ名>/.local/bin/opencode</code> | |||
|- | |||
| Arguments || <code>acp</code> | |||
|- | |||
| 作業ディレクトリ || Qtプロジェクトの絶対パス | |||
|} | |||
</center> | |||
<br> | |||
プロジェクトの作業ディレクトリをコマンド引数で指定する場合は、以下に示すように設定する。<br> | |||
<br> | |||
acp --cwd /home/<ユーザ名>/projects/my-qt-project | |||
<br> | |||
OpenCodeの実際のインストール場所は、ターミナルで <code>command -v opencode</code> コマンドを実行して確認する。<br> | |||
表示されたパスをQt Creatorの <code>Executable</code> に設定して、必要に応じて <code>acp</code> を引数として登録する。<br> | |||
<br> | |||
OpenCodeからQt Creatorのビルドや実行を操作する場合は、MCP Server拡張機能も有効にする必要がある。<br> | |||
この拡張機能はACP Clientと同様に、Extensionsから有効化できる。<br> | |||
<br> | |||
# Qt Creatorの左下にあるモードセレクターから[Extensions]を選択する。 | |||
# 拡張機能一覧から <u>MCP Server</u> を選択して、[Active]スイッチを有効にする。 | |||
# [Restart Now]ボタンを押下して、Qt Creatorを再起動する。 | |||
# [編集]メニューバー - [Preferences...]メニュー - 画面左ペインから[AI] - 画面右ペインから[Qt Creator MCP Server]タブを選択して、<br>[Enable MCP Server]チェックボックスにチェックを入力する。 | |||
<br> | |||
<br> | |||
==== 接続と動作確認 ==== | |||
# Qt Creatorで対象のQtプロジェクトを開く。 | |||
# [ツール]メニューバー - [ACP Client]メニュー - [Show Agentic AI Chat in Side Panel]サブメニューを選択する。 | |||
# Agentic AI Chatで登録したOpenCodeを選択する。 | |||
# 接続が完了するまで待つ。 | |||
# <u>プロジェクトの構成を説明してください。</u> 等のプロンプトを送信する。 | |||
# OpenCodeがプロジェクトのファイルを読み取り、応答することを確認する。 | |||
<br> | |||
ビルドおよび実行もOpenCodeから操作する場合は、<u>Qt Creator MCP Server</u> 拡張機能を有効にした上で、使用するKitが正しく設定されていることを確認する。<br> | |||
<br> | |||
ACP Clientの通信状態を確認する場合は、[ツール]メニューバー - [ACP Client]メニュー - [Inspect ACP Client]サブメニューを選択して、<br> | |||
[ACP Client:]プルダウンから <u>OpenCode</u> を選択する。<br> | |||
<br> | |||
==== トラブルシューティング ==== | |||
===== ACP Clientが表示されない ===== | |||
、Qt Creatorのバージョンが20未満であるか、ACP Client拡張が無効になっている可能性がある。<br> | |||
<br> | |||
* Qt Creatorのバージョンを確認する。 | |||
* Qt Creator 20以降へ更新する。 | |||
* ACP Clientの拡張機能が有効であることを確認する。 | |||
<br> | |||
===== OpenCodeが見つからない ===== | |||
Qt Creatorから起動したプロセスに、環境変数 <code>PATH</code>が伝わっていない可能性がある。<br> | |||
<br> | |||
# ターミナルで <code>command -v opencode</code> コマンドを実行する。 | |||
# 表示されたOpenCodeの絶対パスを確認する。 | |||
# [編集]メニューバー - [Preferences...]を選択して、画面左ペインから[AI] - 画面右ペイン[ACP Servers]タブを選択して、<code>Executable</code> にOpenCodeの絶対パスを指定する。 | |||
<br> | |||
===== 接続が初期化状態で停止する ===== | |||
OpenCodeのACP Serverが起動できないか、作業ディレクトリの指定に問題がある可能性がある。<br> | |||
<br> | |||
* ターミナルで <code>opencode acp --help</code> コマンドを実行する。 | |||
* <code>--cwd</code> オプションに指定したディレクトリが存在することを確認する。 | |||
* [ツール]メニューバー - [ACP Client]メニュー - [Inspect ACP Client]サブメニューを選択して、OpenCodeの通信内容を確認する。 | |||
* ACP Serversの実行ファイルと引数を確認する。 | |||
<br> | |||
===== LLMプロバイダーの認証に失敗する ===== | |||
OpenCode側の認証情報が未設定である可能性がある。<br> | |||
<br> | |||
* OpenCodeを起動する。 | |||
* <code>/connect</code> コマンドを実行して、認証する。 | |||
* 必要に応じて、APIキーを環境変数に設定する。 | |||
<br> | |||
===== ビルドや実行ができない ===== | |||
Qt Creator MCP Server拡張機能が無効であるか、Qt CreatorのKit設定に問題がある可能性がある。<br> | |||
<br> | |||
* [編集]メニューバー - [Preferences...]を選択して、画面左ペインから[AI] - 画面右ペイン[Qt Creator MCP Server]タブを選択して、<br>[Enable MCP Server]チェックボックスにチェックを入力する。 | |||
* Qt Creatorでプロジェクトに使用するKitを確認する。 | |||
* CMake構成とコンパイラの設定を確認する。 | |||
* OpenCodeからビルドまたは実行を再試行する。 | |||
<br> | |||
==== 関連情報 ==== | |||
* [https://agentclientprotocol.com/ Agent Client Protocol公式サイト] | |||
* [https://github.com/agentclientprotocol/agent-client-protocol Agent Client Protocol GitHubリポジトリ] | |||
* [https://doc.qt.io/qtcreator/creator-how-to-use-acp-client.html Qt Creator ACP Client公式ドキュメント] | |||
* [https://opencode.ai/docs/acp/ OpenCode ACP公式ドキュメント] | |||
<br><br> | <br><br> | ||
| 576行目: | 864行目: | ||
<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__ | ||
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||