📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 1,459行目: | 1,459行目: | ||
===== CMakeツールチェーンファイルの作成 ===== | ===== CMakeツールチェーンファイルの作成 ===== | ||
ターゲット向けQt 6ライブラリのビルドで使用するCMakeツールチェーンファイルを作成する。<br> | ターゲット向けQt 6ライブラリのビルドで使用するCMakeツールチェーンファイルを作成する。<br> | ||
vi | vi Qt6ToolChain_for_PinePhone.cmake | ||
<br> | <br> | ||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
| 1,471行目: | 1,471行目: | ||
# Set path to System Root. | # Set path to System Root. | ||
set(TARGET_SYSROOT | set(TARGET_SYSROOT <PinePhoneのシステムルートディレクトリ>) | ||
set(CMAKE_SYSROOT ${TARGET_SYSROOT}) | set(CMAKE_SYSROOT ${TARGET_SYSROOT}) | ||
| 1,503行目: | 1,503行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
===== | ===== Qtのビルド ===== | ||
Qt 6をクロスビルドするため、クロスビルド向けディレクトリを作成する。<br> | |||
mkdir | mkdir build && cd build | ||
<br> | <br> | ||
Qt 6のクロスビルド向けの設定を行う。<br> | |||
# | # Wayland Scannerのパスを設定 | ||
export PATH="/<Wayland Scannerのインストールディレクトリ>/bin:$PATH" | |||
export LD_LIBRARY_PATH="/<Wayland Scannerのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH" | |||
# PinePhoneのシステムルートディレクトリを設定 | |||
export | export SYSROOT=<PinePhoneのシステムルートディレクトリ> | ||
export PKG_CONFIG_PATH= | # Pkg-Configの設定 | ||
export PKG_CONFIG_LIBDIR= | export PKG_CONFIG_PATH="$SYSROOT/usr/lib/pkgconfig:$SYSROOT/usr/lib/aarch64-linux-gnu/pkgconfig" | ||
export PKG_CONFIG_LIBDIR="$SYSROOT/usr/lib/pkgconfig:$SYSROOT/usr/lib/aarch64-linux-gnu/pkgconfig:$SYSROOT/usr/share/pkgconfig" | |||
# | # コンパイラの設定 | ||
export CROSS_COMPILER="/<GCC ARMツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-" | |||
# または | |||
# export CROSS_COMPILER="/<GCC ARMツールチェーンのインストールディレクトリ>/bin/aarch64-unknown-linux-gnu-" | |||
cmake -G Ninja \ | |||
<Qt 6のソースコードがあるディレクトリ> \ | |||
-DCMAKE_BUILD_TYPE=Release \ | -DCMAKE_BUILD_TYPE=Release \ | ||
-DQT_FEATURE_eglfs_egldevice=ON \ | -DQT_FEATURE_eglfs_egldevice=ON \ | ||
-DQT_FEATURE_eglfs_gbm=ON \ | -DQT_FEATURE_eglfs_gbm=ON \ | ||
-DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON \ | -DCMAKE_TOOLCHAIN_FILE=<CMakeデバイスファイルのパス> \ | ||
-DQT_BUILD_EXAMPLES=OFF \ | -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON \ | ||
-DQT_BUILD_TESTS=OFF | -DQT_QMAKE_TARGET_MKSPEC=devices/linux-pinephone-g++ \ | ||
-DBUILD_qtdoc=OFF | -DQT_QMAKE_DEVICE_OPTIONS=CROSS_COMPILE=$CROSS_COMPILER \ | ||
-DBUILD_qtwebengine=OFF \ | -DQT_BUILD_EXAMPLES=OFF \ | ||
-DBUILD_qtwebview=OFF | -DQT_BUILD_TESTS=OFF \ | ||
- | -DBUILD_qtdoc=OFF \ # QtDocをインストールしない場合 | ||
- | -DBUILD_qtwebengine=OFF \ # QtWebEngineをインストールしない場合 | ||
- | -DBUILD_qtwebview=OFF \ # QtWebViewをインストールしない場合 | ||
- | -DBUILD_qtwebchannel=OFF \ # QtWebChannelをインストールしない場合 | ||
- | -DCMAKE_SYSROOT=$SYSROOT \ | ||
- | -DQT_HOST_PATH=<x86 64向けQt 6のパスのトップディレクトリ 例: /home/user/Qt/6.x.x/gcc_64> \ | ||
-DCMAKE_STAGING_PREFIX=<PinePhone向けQt 6ライブラリを配置するディレクトリ> \ | |||
-DCMAKE_INSTALL_PREFIX=<Qtソフトウェアを配置するディレクトリ> \ | |||
-DCMAKE_PREFIX_PATH=$SYSROOT/usr/lib | |||
<br> | <br> | ||
Qt 6をクロスビルドおよびインストールする。<br> | |||
cmake --build . --parallel $(nproc) | cmake --build . --parallel $(nproc) | ||
cmake --install . | cmake --install . | ||
<br> | |||
===== Qtライブラリのインストール ===== | |||
クロスビルドしたQtライブラリを、PinePhoneにデプロイする。<br> | |||
<br> | |||
まず、PinePhone向けQt 6ライブラリのインストールディレクトリに存在する全てのファイルを、PinePhoneの任意のディレクトリ(例. ~/InstallSoftware/Qt_6_x_xディレクトリ)に同期させる。<br> | |||
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \ | |||
<PinePhone向けQt 6ライブラリのインストールディレクトリ> <PinePhoneのユーザ名>@<PinePhoneのホスト名またはIPアドレス>:/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x | |||
<br> | |||
<u>※注意</u><br> | |||
<u>PinePhoneにアップロードしたQtライブラリの所有者がrootになっている場合があるため、</u><br> | |||
<u>以下のコマンドを実行して、所有者をローカルユーザに変更する必要がある。</u><br> | |||
sudo chown -R <ユーザ名>:<グループ名> ~/InstallSoftware/Qt_6_x_x | |||
<br> | |||
PinePhoneのリンカがQtライブラリを読み込むようにするため、以下のコマンドを実行する。<br> | |||
/etc/ld.so.conf.dディレクトリに配置する場合、ファイル名の先頭に"<code>00</code>"を付加すること。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>~/.profileファイルに環境変数<code>LD_LIBRARY_PATH</code>を設定する場合、再度、Qt Creatorで環境変数<code>LD_LIBRARY_PATH</code>を設定する必要がある。</u><br> | |||
<u>Qt Creatorでの設定は、Qt Creatorメイン画面左にある[プロジェクト] - [RUN] - [Environment]で設定する。</u><br> | |||
# .profileファイルに設定する場合 | |||
export LD_LIBRARY_PATH="/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/lib:$LD_LIBRARY_PATH" | |||
export LD_LIBRARY_PATH="/home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/qmltooling:$LD_LIBRARY_PATH" | |||
# /etc/ld.so.conf.d/00-Qt_6_x_x.confファイルに設定する場合 | |||
echo /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/lib | sudo tee /etc/ld.so.conf.d/00-Qt_6_x_x.conf | |||
echo /home/<PinePhoneのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/qmltooling | sudo tee /etc/ld.so.conf.d/00-Qt_6_x_x.conf | |||
<br> | |||
ライブラリを読み込む。<br> | |||
# .profileファイルに設定した場合 | |||
source ~/.profile | |||
# /etc/ld.so.conf.d/00-Qt_6_x_x.confファイルに設定した場合 | |||
sudo ldconfig | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]] | ||