📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

1,561行目: 1,561行目:
  sudo chown -R <ユーザ名>:<グループ名> ~/InstallSoftware/Qt_6_x_x
  sudo chown -R <ユーザ名>:<グループ名> ~/InstallSoftware/Qt_6_x_x
<br>
<br>
==== Qtプロジェクトの設定 ====
次に、Qt Creatorでソフトウェアを開発する時の環境設定を行う。<br>
<br>
まず、プロジェクトの環境変数の設定を行う。<br>
Qt Creatorを起動して、Qt Creatorメイン画面左の[プロジェクト] - 左ペインの[Run] - 右ペインの[ビルド設定] - [Environment]項目 - [詳細]プルダウンを開く。<br>
[詳細]プルダウンから[追加]ボタンを押下して、以下の項目を設定する。<br>
<br>
<u>Qtプロジェクトをデバッグする場合は、必ず[デバイス環境の取得]ボタンを押下すること。</u><br>
* Variable - QT_QPA_PLATFORMTHEME
*: Value - qt6ct
* Variable - DISPLAY
*: Value - :0 または :0.0
* Variable : PATH
*: Value : /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/bin  ※PATHの設定が既に存在する場合は、追記する
* Variable : LD_LIBRARY_PATH  (PinePhoneの~/.profileファイルに環境変数LD_LIBRARY_PATHを設定している場合)
*: Value : /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/lib:/home/<PinePhone's User Name>/InstallSoftware/Qt_6_x_x/plugins/qmltooling
* Variable : QML_IMPORT_PATH
*: Value : /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/qml
* Variable : QML2_IMPORT_PATH
*: Value : /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/qml
* Variable : QT_PLUGIN_PATH
*: Value : /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins
* Variable : QT_QPA_PLATFORM_PLUGIN_PATH
*: Value : /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/platforms
<br>
また、上記の設定を簡潔に行う場合、Qtプロジェクトのディレクトリにある.pro.userファイルにおいて、<br>
<code><valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">〜</valuemap></code>要素内に、以下の設定を追記する。<br>
<u>以下の設定を追記する場合、必ず、Qtプロジェクトを閉じた状態で行うこと。</u><br>
<syntaxhighlight lang="xml">
# .pro.userファイル
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
  <!-- ...略 -->
  <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes">
    <value type="QString">QT_QPA_PLATFORMTHEME=qt6ct</value>
    <value type="QString">DISPLAY=:0</value>
    <value type="QString">PATH=/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value>
    <value type="QString">LD_LIBRARY_PATH=/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/lib:/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/qmltooling</value>
    <value type="QString">QML_IMPORT_PATH=/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/qml</value>
    <value type="QString">QML2_IMPORT_PATH=/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/qml</value>
    <value type="QString">QT_PLUGIN_PATH=/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins</value>
    <value type="QString">QT_QPA_PLATFORM_PLUGIN_PATH=/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/platforms</value>
  </valuelist>
  <!-- ...略 -->
</valuemap>
</syntaxhighlight>
<br>
もし、デバッグにおいて、以下のようなエラーが出力される場合は、<br>
Qt Creatorのサイドメニューから、[プロジェクト] - [Build & Run] - [Run] - [コマンドライン引数:]項目に、<code>-platform wayland</code>を記述する。<br>
# エラー内容
Failed to create wl_display (No such file or directory)
...
error: XDG_RUNTIME_DIR not set in the environment
...
qt.qpa.plugin: Could not load the Qt platform plugin "wayland"
<br>
<br>
次に、GDBデバッガの設定を行う。<br>
リモートターゲットをデバッグする時、GDBは、Linux PC側にダウンロードしているPinePhoneのシステムルートディレクトリを検索する。<br>
そのため、GDBにターゲット側のPinePhoneのシステムルートディレクトリを検索するように設定する必要がある。<br>
<br>
これは、Qt Creatorメイン画面から、[ツール]メニューバー - [オプション] - [デバッガ] - [GDB]タブ - [追加の起動コマンド]に、以下の内容を設定する。<br>
<u>ただし、この設定はQt Quickを使用する時のみである。(Qt Widgetを使用する場合は設定不要)</u><br>
set sysroot target:/
<br>
しかし、上記の[追加の起動コマンド]において、<code>set sysroot target:/</code>オプションを使用する場合、デバッグの開始に時間が掛かる。<br>
そのため、以下のように、[追加の起動コマンド]を記述して、<br>
システムルートディレクトリに対して、Qtライブラリのインストールディレクトリのシンボリックリンクを作成することを推奨する。<br>
<br>
システムルートディレクトリに対して、Linux PCに保存したPinePhone向けのQtライブラリがあるディレクトリのシンボクリックリンクを作成する。
mkdir -p /<PinePhoneのシステムルートディレクトリ>/home/mobian/InstallSoftware
ln -s /<Qtライブラリのインストールディレクトリ> /<PinePhoneのシステムルートディレクトリ>/home/mobian/InstallSoftware
# シンボリックリンク名の変更
mv /<PinePhoneのシステムルートディレクトリ>/home/mobian/InstallSoftware/<Qtライブラリのインストールディレクトリ> \
    /<PinePhoneのシステムルートディレクトリ>/home/mobian/InstallSoftware/Qt_6_x_x
<br>
Qt Creatorメイン画面から、[ツール]メニューバー - [オプション] - [デバッガ] - [GDB]タブ - [追加の起動コマンド]に、以下の内容を設定する。<br>
# Kit名に"PinePhone"という文字列が入っている場合のみ、PinePhoneのシステムルートディレクトリを参照する
# x86 / x64のKitを使用する場合は、PinePhoneのシステムルートディレクトリを参照しない
[ -n $(grep -i PinePhone %{ActiveProject:Kit:Name}) ] && set sysroot /<PinePhoneのシステムルートディレクトリ>
# または
set sysroot /<PinePhoneのシステムルートディレクトリ>
<br>
これにより、PinePhoneでQtライブラリが使用できる。<br>
<br><br>
<br><br>


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