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

218行目: 218行目:
==== Qtの構築 ====
==== Qtの構築 ====
Linux PC上に作業ディレクトリを作成して、ツールチェーンをダウンロードする。<br>
Linux PC上に作業ディレクトリを作成して、ツールチェーンをダウンロードする。<br>
  mkdir -P ~/Program/Qt_Develop && cd ~/Program/Qt_Develop
  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/Qt_Develop/sysrootディレクトリを作成する。<br>
Linux PC上に、~/Program/Qt_Embedded/sysrootディレクトリを作成する。<br>
<code>rsync</code>コマンドを使用することにより、同期を取ることができる。<br>
<code>rsync</code>コマンドを使用することにより、Raspberry Piのディレクトリと同期することができる。<br>
  mkdir ~/Program/Qt_Develop/sysroot ~/Program/Qt_Develop/sysroot/usr ~/Program/Qt_Develop/sysroot/opt
  mkdir ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Develop/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt
  rsync -avz <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Develop/sysroot
  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/Qt_Develop/sysroot/usr
  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/Qt_Develop/sysroot/usr
  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/Qt_Develop/sysroot/opt
  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/Qt_Develop/sysroot
  ./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot
<br>
<br>
Linux PC上で、qtbaseの取得とQtの設定を行う。<br>
Linux PC上で、QtBaseのダウンロードとQtの設定を行う。<br>
ターゲットディレクトリは、Piでは/usr/local/qt5pi、qmake等のホストツールでは~/raspi/qt5、<br>
ここでは、ターゲットディレクトリにおいて、Raspberry Pi側では、~/Qt5Piディレクトリ、<br>
make installでは、~/Program/Qt_Develop/qt5piをターゲットにする。(Raspberry Piと同期するのは、このディレクトリである)<br>
qmake等のホストツール(Linux PC上)では、~/Program/Qt_Embedded/Qt5ディレクトリ、<br>
<code>make install</code>コマンドでは、~/Program/Qt_Embedded/Qt5Piをターゲットとする。<br>
(Raspberry Piと同期するのは、このディレクトリである)<br>
<br>
<br>
<qt-version>を適切なQtのバージョンに変更する必要がある。(例. 5.12.1や5.15.2等)<br>
<Qtのバージョン>を適切なQtのバージョンに変更する必要がある。(例. 5.12.7や5.15.2等)<br>
<rpi-version>を適切なRaspberry Piのバージョンに変更する必要がある。<br>
また、<Raspberry Piのバージョン>を適切なRaspberry Piのバージョンに変更する必要がある。<br>
Raspberry Piにはlinux-rasp-pi-g++、Raspberry Pi 2にはlinux-rasp-pi2-g++、Reaspberry Pi 3にはlinux-rasp-pi3-g++を使用する。<br>
<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=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
  -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 <qt-version>
  git clone --depth 1 git://code.qt.io/qt/qtbase.git -b <Qtのバージョン>
  cd qtbase
  cd qtbase
   
   
  ./configure -release -opengl es2 -device <rpi-version> \
  ./configure -release -opengl es2 -device <Raspberry Piのバージョン> \
  -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- \
  -device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- \
  -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs \
  -sysroot ~/Program/Qt_Embedded/sysroot -opensource -confirm-license -make libs \
  -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
  -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/Qt_Develop/qt5pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/local
  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/Qt_Develop/qt5/bin/qmake
  ~/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 /usr/local/qt5pi/lib | sudo tee /etc/ld.so.conf.d/qt5pi.conf
  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/qt5/bin/qmake
  ~/Program/Qt_Develop/Qt5/bin/qmake
  make -j 8
  make -j 8
  make install
  make install