📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 218行目: | 218行目: | ||
==== Qtの構築 ==== | ==== Qtの構築 ==== | ||
Linux PC上に作業ディレクトリを作成して、ツールチェーンをダウンロードする。<br> | Linux PC上に作業ディレクトリを作成して、ツールチェーンをダウンロードする。<br> | ||
mkdir -P ~/Program/ | mkdir -P ~/Program/Qt_Embedded && cd ~/Program/Qt_Embedded | ||
git clone --depth 1 https://github.com/raspberrypi/tools | git clone --depth 1 https://github.com/raspberrypi/tools | ||
<br> | <br> | ||
| 240行目: | 240行目: | ||
cp ~/Program/Qt_Develop/qtbase/bin/rcc ~/Program/Qt_Develop/qt5pi/bin | cp ~/Program/Qt_Develop/qtbase/bin/rcc ~/Program/Qt_Develop/qt5pi/bin | ||
<br> | <br> | ||
Linux PC上に、~/Program/ | Linux PC上に、~/Program/Qt_Embedded/sysrootディレクトリを作成する。<br> | ||
<code>rsync</code> | <code>rsync</code>コマンドを使用することにより、Raspberry Piのディレクトリと同期することができる。<br> | ||
mkdir ~/Program/ | mkdir ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Develop/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt | ||
rsync -avz <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/ | rsync -avz --progress "ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot | ||
rsync -avz <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/usr/include ~/Program/ | rsync -avz --progress "ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/usr/include ~/Program/Qt_Embedded/sysroot/usr | ||
rsync -avz <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/usr/lib ~/Program/ | rsync -avz --progress "ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/usr/lib ~/Program/Qt_Embedded/sysroot/usr | ||
rsync -avz <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/opt/vc ~/Program/ | rsync -avz --progress "ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/opt/vc ~/Program/Qt_Embedded/sysroot/opt | ||
<br> | <br> | ||
Linux PC上で、シンボリックリンクを相対的に調整する。<br> | Linux PC上で、シンボリックリンクを相対的に調整する。<br> | ||
| 252行目: | 252行目: | ||
wget https://raw.githubusercontent.com/Kukkimonsuta/rpi-buildqt/master/scripts/utils/sysroot-relativelinks.py | wget https://raw.githubusercontent.com/Kukkimonsuta/rpi-buildqt/master/scripts/utils/sysroot-relativelinks.py | ||
chmod +x sysroot-relativelinks.py | chmod +x sysroot-relativelinks.py | ||
./sysroot-relativelinks.py ~/Program/ | ./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot | ||
<br> | <br> | ||
Linux | Linux PC上で、QtBaseのダウンロードとQtの設定を行う。<br> | ||
ここでは、ターゲットディレクトリにおいて、Raspberry Pi側では、~/Qt5Piディレクトリ、<br> | |||
make | qmake等のホストツール(Linux PC上)では、~/Program/Qt_Embedded/Qt5ディレクトリ、<br> | ||
<code>make install</code>コマンドでは、~/Program/Qt_Embedded/Qt5Piをターゲットとする。<br> | |||
(Raspberry Piと同期するのは、このディレクトリである)<br> | |||
<br> | <br> | ||
< | <Qtのバージョン>を適切なQtのバージョンに変更する必要がある。(例. 5.12.7や5.15.2等)<br> | ||
< | また、<Raspberry Piのバージョン>を適切なRaspberry Piのバージョンに変更する必要がある。<br> | ||
Raspberry | <Raspberry Piのバージョン>には、<code>linux-rasp-pi-g++</code>、Raspberry Pi 2は<code>linux-rasp-pi2-g++</code>、Reaspberry Pi 3は<code>linux-rasp-pi3-g++</code>を指定する。<br> | ||
<br> | <br> | ||
Raspbianが64ビットの場合は、デバイスオプションを以下のように編集する。<br> | Raspbianが64ビットの場合は、デバイスオプションを以下のように編集する。<br> | ||
また、Qt 5.9以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br> | また、Qt 5.9以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br> | ||
-device-option CROSS_COMPILE=~/ | -device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- | ||
<br> | <br> | ||
git clone --depth 1 git://code.qt.io/qt/qtbase.git -b < | git clone --depth 1 git://code.qt.io/qt/qtbase.git -b <Qtのバージョン> | ||
cd qtbase | cd qtbase | ||
./configure -release -opengl es2 -device < | ./configure -release -opengl es2 -device <Raspberry Piのバージョン> \ | ||
-device-option CROSS_COMPILE=~/ | -device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- \ | ||
-sysroot ~/ | -sysroot ~/Program/Qt_Embedded/sysroot -opensource -confirm-license -make libs \ | ||
-prefix / | -prefix ~/Program/Qt_Embedded/Qt5Pi -extprefix ~/Program/Qt_Embedded/Qt5Pi -hostprefix ~/Qt5Pi -v -no-use-gold-linker | ||
make -j 8 | make -j 8 | ||
| 282行目: | 284行目: | ||
Linux PC上で、QtをRaspberry Piにデプロイする。<br> | Linux PC上で、QtをRaspberry Piにデプロイする。<br> | ||
ここでは、~/Program/Qt_Develop/qt5piから上で設定したプレフィックスに全てを同期させる。<br> | ここでは、~/Program/Qt_Develop/qt5piから上で設定したプレフィックスに全てを同期させる。<br> | ||
rsync -avz ~/Program/ | rsync -avz --progress "ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/local | ||
<br> | <br> | ||
Linux PC上で、Qtのサンプルプログラムをビルドして動作確認を行う。<br> | Linux PC上で、Qtのサンプルプログラムをビルドして動作確認を行う。<br> | ||
| 288行目: | 290行目: | ||
cd qtbase/examples/opengl/qopenglwidget | cd qtbase/examples/opengl/qopenglwidget | ||
~/Program/ | ~/Program/Qt_Embedded/Qt5/bin/qmake | ||
make -j 8 | make -j 8 | ||
scp qopenglwidget <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/pi | scp -P <ポート番号> -i <秘密鍵のフルパス> qopenglwidget <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/pi | ||
<br> | <br> | ||
Raspberry Pi上で、リンカがQtライブラリを見つけられるように、Raspberyy Piを更新する。<br> | Raspberry Pi上で、リンカがQtライブラリを見つけられるように、Raspberyy Piを更新する。<br> | ||
もし、サンプルの実行に問題がある場合は、qt5pi.confの代わりに00-qt5pi.confを使用して、適切な順序を導入する。<br> | もし、サンプルの実行に問題がある場合は、qt5pi.confの代わりに00-qt5pi.confを使用して、適切な順序を導入する。<br> | ||
echo / | echo ~/Qt5Pi/lib | sudo tee /etc/ld.so.conf.d/qt5pi.conf | ||
sudo ldconfig | sudo ldconfig | ||
<br> | <br> | ||
| 323行目: | 325行目: | ||
cd <Qtソフトウェアのサンプルプロジェクト> | cd <Qtソフトウェアのサンプルプロジェクト> | ||
~/Program/Qt_Develop/ | ~/Program/Qt_Develop/Qt5/bin/qmake | ||
make -j 8 | make -j 8 | ||
make install | make install | ||