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

提供: MochiuWiki : SUSE, EC, PCB

 
621行目: 621行目:
[表示]メインメニュー - [メニューバーを表示]チェックボックスの選択を解除する。<br>
[表示]メインメニュー - [メニューバーを表示]チェックボックスの選択を解除する。<br>
メニューバーを再度表示するには、[Ctrl] + [Alt] + [M]キーを同時押下する。<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>



2026年7月24日 (金) 17:46時点における最新版

概要

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

Qt 6.2 LTSのサポート期間は、2024年9月30日まで、Qt 6.5 LTSのサポート期間は2026年3月30日までである。

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

参考書
61OPCSNS4VL._SL1180_.jpg
Introducing Qt 6
C++でモバイルとデスクトップ向けのアプリとゲームを作ることを学ぶ
61meHwEaCLS._SL1360_.jpg
Cross-Platform Development with Qt 6 and Modern C++
プラットフォーム依存性を気にすることなく、
モダンなグラフィカルユーザーインターフェースを持つアプリケーションを設計・構築する
51J026p9D8S._SL1360_.jpg
A Guide to Qt 6
Qt 6の初心者向けガイド



Qtモジュール

Qtビルディングブロック

Qt 6は多数のモジュールから構成されている。
一般的に、モジュールは開発者が使用するためのライブラリである。

いくつかのモジュールは、Qt対応プラットフォームで必須であり、Qt Essentials Modulesと呼ばれている。
その他のモジュールはオプションで、Qt Add-on Modulesと呼ばれている。
開発者の大半はQt Add-on Modulesを使用する機会はあまり無いかもしれないが、一般的な課題に対する貴重な解決策を提供してくれるため、知っておいて損はない。

Qt Essentials Modules

Qt Essentials Modulesは、Qtが使用されるプラットフォームには必須である。
Qt / QMLプログラミングを始めるための最小限のQt6モジュールセットである。

Qt Quick 2を使用して最新のQt6アプリケーションを開発するための基礎を提供している。
モジュールの全リストは、Qtドキュメントモジュールリスト (https://doc.qt.io/qt-6/qtmodules.html#qt-essentials) を参照すること。

  • Qt Core
    他のモジュールで使用される非グラフィカルなコアクラス。
  • Qt D-BUS
    LinuxのD-Busプロトコルでプロセス間通信を行うためのクラス。
  • Qt GUI
    GUIコンポーネントのベースクラス。
    これは、OpenGLを含む。
  • Qt Network
    ネットワークプログラミングをより簡単に、よりポータブルにするためのクラス。
  • Qt QML
    QMLとJavaScript言語用のクラス。
  • Qt Quick
    カスタムユーザーインターフェースを持つ、高度にダイナミックなアプリケーションを構築するための宣言型フレームワーク。
  • Qt Quick Controls
    デスクトップ、組み込み、モバイルデバイス用の高性能なユーザーインターフェイスを作成するための軽量なQMLタイプを提供する。
    これらの型はシンプルなスタイリングアーキテクチャを採用しており、非常に効率的である。
  • Qt Quick Layouts
    Layoutsは、Qt Quick 2ベースのアイテムをユーザーインターフェイスに配置するためのアイテムである。
  • Qt Quick Test
    QMLアプリケーション用のユニットテストフレームワークで、テストケースはJavaScriptの関数として記述される。
  • Qt Test
    Qtアプリケーションやライブラリを単体テストするためのクラス。
  • Qt Widgets
    C++ウィジェットであり、Qt GUIを拡張するためのクラス。


Qt Add-On Modules

Qt Essentials Modulesモジュールの他に、Qtは特定の目的に対応する追加モジュールを提供している。
多くのアドオンモジュールは機能が複雑で後方互換性のために存在するか、特定のプラットフォームにのみ適用可能である。

利用可能なアドオンモジュールの一覧を以下に示すが、Qtの公式ドキュメントを参照して、全てのアドオンモジュールを理解すること。

  • Network
    Qt Bluetooth / Qt Network Authorization UI Components
    Qt Quick 3D / Qt Quick Timeline / Qt Charts / Qt Data Visualization / Qt Lottie Animation / Qt Virtual Keyboard
  • グラフィックス
    : Qt 3D / Qt Image Formats / Qt OpenGL / Qt Shader Tools / Qt SVG / Qt Wayland Compositor
  • ヘルパー
    Qt5コア互換API / Qt Concurrent / Qt Help / Qt Print Support / Qt Quick Widgets / Qt SCXML / Qt SQL / Qt State Machine / Qt UI Tools / Qt XML



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 \
                    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    \
                    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 \
                    xcb-util-cursor-devel xcb-util-image-devel xcb-util-renderutil-devel                                                        \
                    vulkan-headers  # Vulkanを使用するプロジェクト、あるいは、Vulkanバックエンドを使用する場合


  • Qt 6におけるVulkan headerの必要性
    Qt 6では、グラフィックスバックエンドの1つとしてVulkanをサポートしている。
    そのため、Vulkanを使用するプロジェクトやVulkanバックエンドを利用する可能性のある場合には、Vulkan headerが必要になる。
  • Vulkan headerの用途
    Vulkan headerは、以下に示すような目的で使用される。
    Vulkan APIの定義: 関数プロトタイプ、構造体、定数等の定義を提供する。
    Vulkanを使用したグラフィックス処理: 3Dレンダリングや計算処理を行う際に必要な関数や構造体を定義する。
    Qt 6のVulkanバックエンド: Qt 6がVulkanバックエンドを使用する際に必要な情報を提供する。


Vulkanサポートを無効にするいくつかの方法を、以下に示す。

  • Qt変数を使用して、Vulkanサポートを無効にする。
    set(QT_NO_CREATE_VERSIONLESS_TARGETS ON)
    set(CMAKE_DISABLE_FIND_PACKAGE_Vulkan TRUE)

  • find_packageコマンドを使用して、Vulkanサポートを無効にする。
    特定のQtライブラリでVulkanが使用されている場合、該当ライブラリのfind_packageコマンドの実行時にOPTIONALフラグを追加する。
    これにより、Vulkan headerの検索に失敗してもエラーにはならない。
    find_package(Qt6 COMPONENTS Gui OPTIONAL_COMPONENTS Vulkan)

  • 特定のQt機能を無効にして、Vulkanサポートを無効にする。
    特定のQt機能がVulkanを必要としている場合、それらの機能を無効にする。
    set(QT_FEATURE_vulkan OFF CACHE BOOL "" FORCE)


Qtのダウンロード

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

# 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


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

chmod u+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 6.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 git-core gcc-c++ make flex bison gperf libicu-devel python3 perl \
                    mozilla-nss-devel nodejs10 nodejs10-devel ruby mozilla-nspr-devel \
                    xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel \
                    xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel libxkbcommon-devel libXi-devel \
                    dbus-1-devel libXcomposite-devel libXcursor-devel libXrandr-devel libXtst-devel wayland-devel \
                    pulseaudio-libs-devel alsa-devel alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel


  • fontconfig-devel
  • libfontenc-devel
  • libXft-devel
  • libx11-devel
  • libxcb-devel
  • libXext-devel
  • libXfixes-devel
  • libXrender-devel
  • Mesa-libGL-devel
  • libXinerama-devel
  • libxcb-shm0-dev
  • libxcb-sync0-dev
  • libxcb-shape0-dev


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

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

git clone --recursive https://code.qt.io/qt-creator/qt-creator.git


ソースコードのビルド

Qtのソースコードをビルドするため、ビルド用のディレクトリを作成する。

mkdir build
cd build


  • 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
     
     cmake --build .. --parallel $(nproc)
    


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

Qtのインストール

Qtをインストールする。

# qmakeを使用する場合
make install

# cmakeを使用する場合
cmake --install ..



Qtのインストールディレクトリの設定

Qtのインストールディレクトリを環境変数に設定することができる。
この環境変数QT_INSTALL_PREFIXは、QtツールやビルドシステムがQtのインストールディレクトリを探す時に使用される。

 export QT_INSTALL_PREFIX=<Qtのインストールディレクトリ>


Qtのインストールディレクトリを確認する場合は、以下に示すコマンドを実行する。

qtpaths --install-prefix



Qtのインストールディレクトリの指定 (CMakeコマンド)

CMakeを使用する場合、Qtのインストールディレクトリを指定する場合は、CMakeコマンドのCMAKE_PREFIX_PATHオプションを付加する。

cmake -DCMAKE_PREFIX_PATH=<Qtのインストールディレクトリ> ..


または、CMakeLists.txtに明示的に設定することもできる。

 set(CMAKE_PREFIX_PATH "<Qtのインストールディレクトリ>")



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

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

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


 # Qt_Creator.desktopファイル
 
 [Desktop Entry]
 Type=Application
 Exec=/<Qt 6のインストールディレクトリ>/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=/<Qt 6のインストールディレクトリ>/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=/<Qt 6のインストールディレクトリ>/<バージョン名>/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において、Fcitxで日本語が入力できない問題が存在する。

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

FcitxおよびFcitx5を使用している場合で手順が異なることに注意すること。

Fcitxを使用している場合

fcitx-qt5ライブラリ(Fcitx)をインストールする。

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

  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 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
      

  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
    


Fcitx5を使用している場合

fcitx5-qtライブラリ(Fcitx5)をインストールする。

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

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

  5. ダウンロードしたfcitx5-qtのディレクトリに移動して、ビルド向けディレクトリを作成する。
    cd fcitx5-qt && mkdir build && cd build
    
  6. fcitx5-qtライブラリをビルドおよびインストールする。
    インストールディレクトリは、自動的に/<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"
      

    • ビルドおよびインストール
       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
      

  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
    



WebAssemblyの開発

Emscripten SDKのインストール

Emscripten SDKは、全てのSDKのメンテナンスを実行するために使用される。
SDKをインストールするのは1度だけで、その後はEmscripten SDKが全てのアップデートを行う。

Emscripten SDKを使用すると、任意のSDKまたはツールをダウンロード、インストール、削除することができ、Githubで開発中の最先端のバージョンを使用することもできる。

Emscripten SDKのGithubにアクセスして、ファイルをダウンロードする。
ダウンロードしたファイルを解凍する。また、必要であれば、任意のディレクトリに配置する。

tar xf emsdk-<バージョン>.tar.gz
cd emsdk-<バージョン>


Emscripten SDKの使用方法

Emscripten SDKのインストールディレクトリに移動する。

  • 利用可能なツールの最新のレジストリを取得する。
./emsdk update


  • 最新のSDKツールをダウンロードしてインストールする。
./emsdk install latest


  • 最新のSDKを指すようにコンパイラを設定する。
./emsdk activate latest


環境変数の設定

~/.profileファイル等にEmscripten SDKの環境変数に追加する。

 # ~/.profileファイル等
 
 export PATH="$HOME/InstallSoftware/Emscripten_SDK:$PATH"
 export PATH="$HOME/InstallSoftware/Emscripten_SDK/upstream/emscripten:$PATH"


また、emsdk_env.shファイルを実行することにより、現在のシェルに対して環境変数を追加することもできる。

source "/<Emscripten SDKのインストールディレクトリ>/emsdk_env.sh"



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でクロスコンパイルを行う場合、インストール_-_Qt6_Raspberry_Piのページを参照すること。


Banana Pi F3のクロスコンパイル

Banana Pi F3でクロスコンパイルを行う場合、インストール - Qt6 Banana Pi (RISC-V)のページを参照すること。


PinePhoneのクロスコンパイル

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


OpenSSL 3のインストールおよび設定

Qt 6において、QNetworkAccessManagerクラス等を使用する場合、以下に示すようなエラーが発生する場合がある。

qt.tlsbackend.ossl: Incompatible version of OpenSSL (built with OpenSSL >= 3.x, runtime version is < 3.x)


これは、Qt 6が古いバージョンのOpenSSLを参照しているために発生する。
これを解決するには、QtオンラインインストーラからOpenSSL 3.x.xのソースコードをダウンロードして、ビルドおよびインストールすることを推奨する。

まず、Qtオンラインインストーラを起動して、[コンポーネントの選択]画面から[Qt] - [Developer and Designer Tools] - [OpenSSL 3.x.x Toolkit]にチェックを入力する。
[次へ]ボタンを押下して、OpenSSL 3.x.xのソースコードをダウンロードする。

ダウンロードが完了した後、/<Qtのインストールディレクトリ>/Tools/OpenSSLv3/srcディレクトリに移動する。

cd /<Qtのインストールディレクトリ>/Tools/OpenSSLv3/src


OpenSSL 3.x.xをビルドおよびインストールする。

mkdir build && cd build

../Configure --prefix=<OpenSSL3のインストールディレクトリ>
make -j $(nproc)
make install


OpenSSL 3.x.xをQt Creatorで使用するため、環境変数を設定する。

  1. Qt Creatorを起動する。
  2. Qt Creatorの画面左にある[プロジェクト]を選択する。
  3. [ビルドと実行]から、該当するキットの[実行]を選択する。
  4. [実行環境]セクションで、[環境]セクションから[この実行構成用の基本環境:]プルダウンから[ビルド時の環境変数]を選択して、以下に示す環境変数を追加する。
PATH=+/<OpenSSL3のインストールディレクトリ>/bin
LD_LIBRARY_PATH=+/<OpenSSL3のインストールディレクトリ>/lib64
PKG_CONFIG_PATH=+/<OpenSSL3のインストールディレクトリ>/lib64/pkgconfig
OPENSSL_CONF=/<OpenSSL3のインストールディレクトリ>/ssl/openssl.cnf



または、以下に示す方法でもOpenSSL 3.x.xを設定することができる。

  1. [ビルドと実行]から、該当するキットの[ビルド]を選択する。
  2. [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




メニューバーの表示 / 非表示

メニューバーの表示 / 非表示を切り替えて、画面上のスペースを節約することができる。

[表示]メインメニュー - [メニューバーを表示]チェックボックスの選択を解除する。
メニューバーを再度表示するには、[Ctrl] + [Alt] + [M]キーを同時押下する。


Qt CreatorとOpenCodeをACPで連携

Qt Creator 20以降では、ACP Clientを使用してOpenCodeをAIエージェントとして接続できる。
Linux環境では、Qt CreatorからOpenCodeを起動して、Qtプロジェクトの作業ディレクトリを指定して利用する。

ACPとは

ACP (Agent Client Protocol) は、Zed Industriesが主導するAIエージェント連携用のプロトコルである。

LSPがエディタと言語サーバ間の通信を標準化したように、ACPはエディタとAIエージェント間の通信を標準化する。
現行の安定版はACP v1であり、JSON-RPC 2.0 over stdioを使用して通信する。

主なメッセージには、初期化、セッション作成、プロンプト送信、セッション更新、キャンセル、認証、権限要求がある。

ACPとMCPの違い
プロトコル 接続対象 使用例
ACP IDE / エディタとAIエージェント Qt CreatorとOpenCode
Jetbrains IDEとOpenCode
MCP AIエージェントとツール・データ OpenCodeとGitHubやデータベース
統合構成 ACPとMCPの両方を使用 Qt Creator - ACP - OpenCode - MCP - 外部ツール


ACPとMCPは別のプロトコルであり、互いに補完する関係にある。

OpenCodeは、ACP ServerとしてQt Creatorから接続され、MCP Serverを通じて外部ツールやQt Creatorの機能を利用できる。

前提条件

  • Qt Creator 20以降
    Qt Creator 16、17、18、19ではACP Clientを利用できない。
  • OpenCode
    ACP Serverとして動作するOpenCodeをインストールする。
  • AIプロバイダーの認証情報
    OpenCodeが使用するLLMプロバイダーの認証情報を準備する。
  • Qtプロジェクト
    CMake等で構成されたQtプロジェクトを用意する。


OpenCodeのインストール

OpenCodeのインストールを知りたい場合は、[インストール - OpenCode]のページを参照すること。

  1. ターミナルを起動する。
  2. インストールスクリプトを実行する。
    curl -fsSL https://opencode.ai/install | bash
  3. インストール後、実行ファイルの場所とバージョンを確認する。
     command -v opencode
     opencode --version
    
  4. ACP Serverが起動できることを確認する。
    opencode acp --help


別のインストール方法として、npmまたはHomebrewも使用できる。

  • npmを使用する場合
    npm install -g opencode-ai
  • Homebrewを使用する場合
    brew install anomalyco/tap/opencode


OpenCodeは、opencode acp コマンドでACP Serverとして動作する。
--cwd オプションで作業ディレクトリを指定、--port オプション や --mdns オプション等も利用できる。

ACP経由では、ファイル操作、ターミナル操作、MCP Server、AGENTS.md ファイルの設定等を利用できる。

ただし、/undo コマンド と /redo コマンドはACP経由ではサポートされない。

Qt Creator側の設定

Qt CreatorのACP Clientを有効にして、ACP ServersにOpenCodeを登録する。

ACP Clientの有効化

ACP Clientは、Qt Creator 20以降で利用可能な拡張機能であり、初期状態では実験的拡張機能として無効化されている場合があるため、Extensionsから有効化する。

  1. Qt Creatorを起動する。
  2. Qt Creatorの左下にあるモードセレクターから[Extensions]を選択する。
  3. 拡張機能一覧から ACP Client を選択して、[Active]スイッチを有効にする。
  4. [Restart Now]ボタンを押下して、Qt Creatorを再起動する。


有効化後、[ツール]メニューバー - [ACP Client]メニュー - [Show Agentic AI Chat in Side Panel]サブメニューを選択して、サイドパネルにAgentic AI Chatが表示されることを確認する。

ACP通信の詳細を確認する場合は、[ツール]メニューバー - [ACP Client]メニュー - [Inspect ACP Client]サブメニューを選択する。

ACP Clientの項目が表示されない場合は、Qt Creatorのバージョンと拡張機能の有効状態を確認する。

ACP ServersへのOpenCode登録
  1. Qt Creatorの設定画面を開く。
  2. [編集]メニューバー - [Preferences...]を選択して、画面左ペインから[AI] - 画面右ペイン[ACP Servers]タブを選択する。
  3. [追加]ボタンを押下して、以下に示す値を入力する。


項目 設定値
Name 任意の名前
例: OpenCode
Executable OpenCodeのフルパスを推奨
例: /home/<ユーザ名>/.local/bin/opencode
Arguments acp
作業ディレクトリ Qtプロジェクトの絶対パス


プロジェクトの作業ディレクトリをコマンド引数で指定する場合は、以下に示すように設定する。

acp --cwd /home/<ユーザ名>/projects/my-qt-project


OpenCodeの実際のインストール場所は、ターミナルで command -v opencode コマンドを実行して確認する。
表示されたパスをQt Creatorの Executable に設定して、必要に応じて acp を引数として登録する。

OpenCodeからQt Creatorのビルドや実行を操作する場合は、MCP Server拡張機能も有効にする必要がある。
この拡張機能はACP Clientと同様に、Extensionsから有効化できる。

  1. Qt Creatorの左下にあるモードセレクターから[Extensions]を選択する。
  2. 拡張機能一覧から MCP Server を選択して、[Active]スイッチを有効にする。
  3. [Restart Now]ボタンを押下して、Qt Creatorを再起動する。
  4. [編集]メニューバー - [Preferences...]メニュー - 画面左ペインから[AI] - 画面右ペインから[Qt Creator MCP Server]タブを選択して、
    [Enable MCP Server]チェックボックスにチェックを入力する。



接続と動作確認

  1. Qt Creatorで対象のQtプロジェクトを開く。
  2. [ツール]メニューバー - [ACP Client]メニュー - [Show Agentic AI Chat in Side Panel]サブメニューを選択する。
  3. Agentic AI Chatで登録したOpenCodeを選択する。
  4. 接続が完了するまで待つ。
  5. プロジェクトの構成を説明してください。 等のプロンプトを送信する。
  6. OpenCodeがプロジェクトのファイルを読み取り、応答することを確認する。


ビルドおよび実行もOpenCodeから操作する場合は、Qt Creator MCP Server 拡張機能を有効にした上で、使用するKitが正しく設定されていることを確認する。

ACP Clientの通信状態を確認する場合は、[ツール]メニューバー - [ACP Client]メニュー - [Inspect ACP Client]サブメニューを選択して、
[ACP Client:]プルダウンから OpenCode を選択する。

トラブルシューティング

ACP Clientが表示されない

、Qt Creatorのバージョンが20未満であるか、ACP Client拡張が無効になっている可能性がある。

  • Qt Creatorのバージョンを確認する。
  • Qt Creator 20以降へ更新する。
  • ACP Clientの拡張機能が有効であることを確認する。


OpenCodeが見つからない

Qt Creatorから起動したプロセスに、環境変数 PATHが伝わっていない可能性がある。

  1. ターミナルで command -v opencode コマンドを実行する。
  2. 表示されたOpenCodeの絶対パスを確認する。
  3. [編集]メニューバー - [Preferences...]を選択して、画面左ペインから[AI] - 画面右ペイン[ACP Servers]タブを選択して、Executable にOpenCodeの絶対パスを指定する。


接続が初期化状態で停止する

OpenCodeのACP Serverが起動できないか、作業ディレクトリの指定に問題がある可能性がある。

  • ターミナルで opencode acp --help コマンドを実行する。
  • --cwd オプションに指定したディレクトリが存在することを確認する。
  • [ツール]メニューバー - [ACP Client]メニュー - [Inspect ACP Client]サブメニューを選択して、OpenCodeの通信内容を確認する。
  • ACP Serversの実行ファイルと引数を確認する。


LLMプロバイダーの認証に失敗する

OpenCode側の認証情報が未設定である可能性がある。

  • OpenCodeを起動する。
  • /connect コマンドを実行して、認証する。
  • 必要に応じて、APIキーを環境変数に設定する。


ビルドや実行ができない

Qt Creator MCP Server拡張機能が無効であるか、Qt CreatorのKit設定に問題がある可能性がある。

  • [編集]メニューバー - [Preferences...]を選択して、画面左ペインから[AI] - 画面右ペイン[Qt Creator MCP Server]タブを選択して、
    [Enable MCP Server]チェックボックスにチェックを入力する。
  • Qt Creatorでプロジェクトに使用するKitを確認する。
  • CMake構成とコンパイラの設定を確認する。
  • OpenCodeからビルドまたは実行を再試行する。


関連情報



エラー関連

libdbusに関する問題

以下に示すようなlibdbusに関するコンパイルエラーが発生する場合がある。

# ...略

/<GCCクロスコンパイラのパス>/bin/ld: /<PinePhoneのシステムルート>/usr/lib/aarch64-linux-gnu/libdbus-1.a(libdbus_1_la-dbus-message.o):
relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `dbus_message_unref' which may bind externally can not be used when making a shared object; recompile with -fPIC

# ...略


これは、システムルート内にあるlibdbusが動的共有オブジェクトでない場合に発生する可能性がある。
これは通常、Mobian / Manjaro ARMの再インストールすることで解決できる。

別の方法としては、libdbus-1-devパッケージを再インストールすることである。
しかし、この問題が解決せず、D-Busが不要の場合は-DFEATURE_dbus=OFFオプションを付加することにより、D-Bus機能を無効にすることができる。

さらに別の方法として、set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")の行を、
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -ldbus-1")に変更する。
この場合、/<PinePhoneのシステムルート>/usr/lib/aarch64-linux-gnu/libdbus-1.soへのリンクが有効であることを確認する。
(同階層のディレクトリのlibdbus-1.so.X.XX.XXにリンクされているはずである)

※注意
Bluetoothモジュールを動作させるにはD-Bus機能が必要である。

libstdc++のエラー

デバッグ時において、以下に示すようなエラーが出力される場合はある。

/Path/to/<Project Name>/bin/<Binary Name>: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.XX' not found (required by /Path/to/Qt6 Library/lib/libQt6Qml.so.6)


クロスコンパイラのlibstdc++.so.6ファイルにおいて、ターゲットとなるOSのlibstdc++.so.6ファイルのバージョンと同等または古いものを使用する必要がある。
例えば、Debian 12 (Mobian 12)はGLIBCXX_3.4.30であるため、GCC 12.2ツールチェーン以前のものを使用する。

以下に示すコマンドを実行して、GLIBCXXのバージョンを確認することができる。

# クロスコンパイラ
strings /<クロスコンパイラのインストールディレクトリ>/<アーキテクチャ名  例: aarch64-linux-gnu>/lib64/libstdc++.so.6 | grep -E '^GLIBCXX'

# Manjaro
strings /usr/lib/libstdc++.so.6 | grep -E '^GLIBCXX'

# Mobian
strings /usr/lib/aarch64-linux-gnu/libstdc++.so.6 | grep -E '^GLIBCXX'


AT-SPI2の警告

Qt6ライブラリを使用してプロジェクトをクロスコンパイルして実行する時、以下に示すようなAT-SPI2に関するエラーが出力される場合がある。

qt.accessibility.atspi Error Not connected to D-Bus server


もし、アクセシビリティが不要な場合、Qt6ライブラリのコンパイルにおいて、cmakeコマンドにアクセシビリティを無効にするオプションを付加する。

-DQT_FEATURE_accessibility=OFF
-DQT_FEATURE_accessibility_atspi_bridge=OFF


GDBデバッグ実行時におけるキャッシュファイルの警告

デバッグ実行時において、以下に示すような警告が非常に多く出力される場合がある。

index cache: could not make cache directory: Permission denied


この警告は、デバッグ実行時のターゲットデバイスのディレクトリが存在しない場合、または、該当ディレクトリに書き込み権限が無い場合に出力される。

この警告を抑制する場合は、以下に示す設定を行う。

  1. Qt Creatorの[編集]メニューバー - [Preferences...]を選択する。
  2. [設定]ダイアログが開くので、画面左ペインにある[デバッガ] - 画面右ペインにある[GDB]タブ - [追加の起動コマンド]に、以下に示す設定を入力する。
    set index-cache directory /tmp/GDB


この設定により、/tmp/GDBディレクトリにデバッグ関連のログファイルが出力されるようになる。