📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 329行目: | 329行目: | ||
echo "$USER ALL=NOPASSWD:$(which rsync)" | sudo tee --append /etc/sudoers | echo "$USER ALL=NOPASSWD:$(which rsync)" | sudo tee --append /etc/sudoers | ||
<br> | <br> | ||
==== | ==== SysRootディレクトリの設定 ==== | ||
Linux | Linux PCで、Raspberry Pi向けのQtソフトウェアをクロスコンパイルできるように開発環境を設定する。<br> | ||
Raspberry Pi上でネイティブにコンパイルすることもできるが、Linux PCの方がスループットが良い。<br> | Raspberry Pi上でネイティブにコンパイルすることもできるが、Linux PCの方がスループットが良い。<br> | ||
<br> | <br> | ||
| 351行目: | 351行目: | ||
./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot | ./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot | ||
<br> | <br> | ||
==== Qtライブラリのダウンロードおよびビルド ==== | |||
Qtのダウンロードおよびビルドを行う。<br> | |||
<br> | <br> | ||
ここでは、Qtソフトウェアは~/Program/Qt_Embedded/QtSoftwareディレクトリ、qmake等のホストツールは~/Program/Qt_Embedded/Hostディレクトリ、<br> | ここでは、Qtソフトウェアは~/Program/Qt_Embedded/QtSoftwareディレクトリ、qmake等のホストツールは~/Program/Qt_Embedded/Hostディレクトリ、<br> | ||
| 357行目: | 358行目: | ||
<br> | <br> | ||
以下のコマンドにおいて、<Qtのバージョン>は、使用するQtのバージョンに変更する。(例. Qt 5.15.2をダウンロードする場合、5.15.2と入力する)<br> | 以下のコマンドにおいて、<Qtのバージョン>は、使用するQtのバージョンに変更する。(例. Qt 5.15.2をダウンロードする場合、5.15.2と入力する)<br> | ||
<Raspberry Piのバージョン>は、Raspberry Piの種類に変更する。<br> | |||
* <Raspberry Piのバージョン> | * <Raspberry Piのバージョン> | ||
** Raspberry Pi 1 | ** Raspberry Pi 1 | ||
| 369行目: | 370行目: | ||
<br> | <br> | ||
<u>Raspbian OS 64bitを使用している場合は、<code>-device-option</code>オプションを以下のように記述する。</u><br> | <u>Raspbian OS 64bitを使用している場合は、<code>-device-option</code>オプションを以下のように記述する。</u><br> | ||
<code>-device-option CROSS_COMPILE=/<GCC ARMツールチェインのインストールディレクトリ>/bin/aarch64-linux-gnueabihf-</code> | |||
< | |||
また、Qt 5.8以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br> | また、Qt 5.8以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br> | ||
* QtBaseをビルドする場合 | * QtBaseをビルドする場合 | ||
| 422行目: | 422行目: | ||
* Githubからダウンロードしてビルドする場合 | * Githubからダウンロードしてビルドする場合 | ||
*: QtのGithubでは、より多くの新しいアップデートが行われている。 | *: QtのGithubでは、より多くの新しいアップデートが行われている。 | ||
*: init- | *: <code>git clone https://github.com/qt/qt5.git</code> | ||
*: <code>cd qt5</code> | |||
*: <code>git checkout x.xx.x</code>または<code>git checkout x.xx</code> | |||
*: <br> | |||
*: <code>init-repository</code>コマンドは、Qtが提供する指定したモジュールのソースコードを取得するためのツールである。 | |||
*: super-repoはそれ自体は小さく、他の全てはgit submodulesとして保持されている。 | *: super-repoはそれ自体は小さく、他の全てはgit submodulesとして保持されている。 | ||
*: 利用可能な全てのモジュールについては[https://doc.qt.io/qt-5/qtmodules.html | *: 利用可能な全てのモジュールについては[https://doc.qt.io/qt-5/qtmodules.html こちらのWebサイト]、ツールについては<code>init-repository --help</code>コマンドまたは[https://github.com/qt/qt5/blob/dev/init-repository こちらのWebサイト]を参照すること。 | ||
*: | *: <code>./init-repository --module-subset=essential</code> | ||
*: | *: <br> | ||
*: | *: <code>../qt5/configure -release -opengl es2 -eglfs -device linux-rasp-pi3-brcm-g++ \</code> | ||
*: | *: <code>-device-option CROSS_COMPILE=/<GCC ARMツールチェーンのインストールディレクトリ>/bin/arm-linux-gnueabihf- \</code> | ||
*: <code>-sysroot /run/media/suse/SAMSUNG860EVO/Qt_Embedded/sysroot \</code> | |||
*: <code>-opensource -confirm-license -v -nomake examples -nomake tests -make libs -no-use-gold-linker -recheck-all \</code> | |||
*: <code>-xcb -xcb-xlib -bundled-xcb-xinput -qpa eglfs -skip qtwebengine \</code> | |||
*: <code>-prefix /run/media/suse/SAMSUNG860EVO/Qt_Embedded/Qt_5_15_2 \</code> | |||
*: <code>-extprefix /run/media/suse/SAMSUNG860EVO/Qt_Embedded/Target \</code> | |||
*: <code>-hostprefix /run/media/suse/SAMSUNG860EVO/Qt_Embedded/Host</code> | |||
*: <br> | *: <br> | ||
*: | *: <code>gmake -j $(nproc)</code> | ||
*: <code>gmake install</code> | |||
*: | |||
<br> | <br> | ||
==== Qtライブラリのインストール ==== | |||
ビルドしたQtライブラリを、Raspberry Piにデプロイする。<br> | ビルドしたQtライブラリを、Raspberry Piにデプロイする。<br> | ||
~/Program/Qt_Embedded/Qt5ディレクトリに存在する全てのファイルを、Raspberry Piの/usr/localディレクトリに同期させる。<br> | ~/Program/Qt_Embedded/Qt5ディレクトリに存在する全てのファイルを、Raspberry Piの/usr/localディレクトリに同期させる。<br> | ||
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \ | rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \ | ||
~/Program/Qt_Embedded/ | ~/Program/Qt_Embedded/Target <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_5_x_x | ||
<br> | <br> | ||
Raspberry PiのリンカがQtライブラリを読み込むようにするため、以下のコマンドを実行する。<br> | Raspberry PiのリンカがQtライブラリを読み込むようにするため、以下のコマンドを実行する。<br> | ||
<u>/etc/ld.so.conf.dディレクトリに配置する場合、Raspberry Pi 2B / 3Bでは、ファイル名の先頭に"00"を付加すること。</u><br> | |||
# .profileファイルに設定する場合 | # .profileファイルに設定する場合 | ||
export LD_LIBRARY_PATH="/home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_5_x_x/lib:$LD_LIBRARY_PATH" | export LD_LIBRARY_PATH="/home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_5_x_x/lib:$LD_LIBRARY_PATH" | ||
| 452行目: | 458行目: | ||
sudo ldconfig | sudo ldconfig | ||
<br> | <br> | ||
これにより、Raspberry PiでQtライブラリが使用できる。<br> | |||
<br> | <br> | ||
==== Qtソフトウェアの動作確認 ==== | ==== Qtソフトウェアの動作確認 ==== | ||
Qtソフトウェアをビルドして、動作確認を行う。<br> | Qtソフトウェアをビルドして、動作確認を行う。<br> | ||