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

 
(同じ利用者による、間の29版が非表示)
12行目: 12行目:
<center>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
{| class="wikitable" | style="background-color:#fefefe;"
|-  
|-
! colspan="3" style="background-color:#44CC99;" | 参考書
! colspan="3" style="background-color:#44CC99;" | 参考書
|- style="text-align: center;"
|- style="text-align: center;"
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag=presire22-22&linkId=3053b20cf3556f8bb315f4f3fd04fdbe&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61OPCSNS4VL._SL1180_.jpg" ></a></html><br>[https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag=presire22-22&linkId=3053b20cf3556f8bb315f4f3fd04fdbe&language=ja_JP&ref_=as_li_ss_tl Introducing Qt 6<br>C++でモバイルとデスクトップ向けのアプリとゲームを作ることを学ぶ]</center>
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag=presire2-22&linkId=3053b20cf3556f8bb315f4f3fd04fdbe&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61OPCSNS4VL._SL1180_.jpg" ></a></html><br>[https://www.amazon.co.jp/Introducing-Qt-Learn-Mobile-Desktop/dp/148427489X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-2&linkCode=ll1&tag=presire2-22&linkId=3053b20cf3556f8bb315f4f3fd04fdbe&language=ja_JP&ref_=as_li_ss_tl Introducing Qt 6<br>C++でモバイルとデスクトップ向けのアプリとゲームを作ることを学ぶ]</center>
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag=presire22-22&linkId=07b919e3516320e5ca209c74e325c740&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61meHwEaCLS._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag=presire22-22&linkId=07b919e3516320e5ca209c74e325c740&language=ja_JP&ref_=as_li_ss_tl Cross-Platform Development with Qt 6 and Modern C++<br>プラットフォーム依存性を気にすることなく、<br>モダンなグラフィカルユーザーインターフェースを持つアプリケーションを設計・構築する]</center>
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag=presire2-22&linkId=07b919e3516320e5ca209c74e325c740&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/61meHwEaCLS._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Cross-Platform-Development-Modern-applications-interfaces/dp/1800204582?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611690&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-8&linkCode=ll1&tag=presire2-22&linkId=07b919e3516320e5ca209c74e325c740&language=ja_JP&ref_=as_li_ss_tl Cross-Platform Development with Qt 6 and Modern C++<br>プラットフォーム依存性を気にすることなく、<br>モダンなグラフィカルユーザーインターフェースを持つアプリケーションを設計・構築する]</center>
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag=presire22-22&linkId=505bfbc1b686c54000759827f92a0c5d&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/51J026p9D8S._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag=presire22-22&linkId=505bfbc1b686c54000759827f92a0c5d&language=ja_JP&ref_=as_li_ss_tl A Guide to Qt 6<br>Qt 6の初心者向けガイド]</center>
| style="width: 33%" | <center><html><a href="https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag=presire2-22&linkId=505bfbc1b686c54000759827f92a0c5d&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/51J026p9D8S._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Guide-Qt-Beginners/dp/B08XLLDZSG?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2XOJ92BZ9LJHM&keywords=Qt6&qid=1683611709&s=english-books&sprefix=qt6%2Cenglish-books%2C156&sr=1-18&linkCode=ll1&tag=presire2-22&linkId=505bfbc1b686c54000759827f92a0c5d&language=ja_JP&ref_=as_li_ss_tl A Guide to Qt 6<br>Qt 6の初心者向けガイド]</center>
|}
|}
</center>
</center>
28行目: 28行目:
                     gawk bison openssl flex figlet pigz ncurses-devel ncurses5-devel texinfo
                     gawk bison openssl flex figlet pigz ncurses-devel ncurses5-devel texinfo
   
   
                     libicu-devel libopus-devel openjpeg2-devel pciutils-devel libpciaccess-devel libxshmfence-devel python3-html5lib \ # QtWebEngineをインストールする場合
                    # QtWebEngineをインストールする場合
                     libvpx-devel                                                                                                       # QtWebEngineをインストールする場合
                     libicu-devel libopus-devel openjpeg2-devel pciutils-devel libpciaccess-devel libxshmfence-devel \
                     libvpx-devel python3-html5lib
   
   
                     ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel       \ # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                    # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libavresample-devel ffmpeg-4-libavutil-devel ffmpeg-4-libpostproc-devel ffmpeg-4-libswresample-devel   \ # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel   \
                     ffmpeg-4-libswscale-devel ffmpeg-4-private-devel                                                                   # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libavresample-devel ffmpeg-4-libavutil-devel ffmpeg-4-libpostproc-devel ffmpeg-4-libswresample-devel \
                     ffmpeg-4-libswscale-devel ffmpeg-4-private-devel
   
   
                     ffmpeg-6-libavcodec-devel ffmpeg-6-libavdevice-devel ffmpeg-6-libavfilter-devel ffmpeg-6-libavformat-devel       \ # QtWebEngineをインストールする場合 (Packmanパッケージ)
                    # QtWebEngineをインストールする場合 (Packmanパッケージ)
                     ffmpeg-6-libavresample-devel ffmpeg-6-libavutil-devel ffmpeg-6-libpostproc-devel ffmpeg-6-libswresample-devel   \ # QtWebEngineをインストールする場合 (Packmanパッケージ)
                     ffmpeg-6-libavcodec-devel ffmpeg-6-libavdevice-devel ffmpeg-6-libavfilter-devel ffmpeg-6-libavformat-devel   \
                     ffmpeg-6-libswscale-devel ffmpeg-6-private-devel                                                                   # QtWebEngineをインストールする場合 (Packmanパッケージ)
                     ffmpeg-6-libavresample-devel ffmpeg-6-libavutil-devel ffmpeg-6-libpostproc-devel ffmpeg-6-libswresample-devel \
                     ffmpeg-6-libswscale-devel ffmpeg-6-private-devel
<br>
<br>
<u>GCC ARMツールチェーンにおいて、GCC 8以降が必要である</u><br>
<u>GCC ARMツールチェーンにおいて、GCC 8以降が必要である</u><br>
48行目: 51行目:
<u>クロスコンパイラのlibstdc++.so.6ファイルにおいて、Raspberry Pi OSのlibstdc++.so.6ファイルのバージョンと同等または古いものを使用する必要がある。</u><br>
<u>クロスコンパイラのlibstdc++.so.6ファイルにおいて、Raspberry Pi OSのlibstdc++.so.6ファイルのバージョンと同等または古いものを使用する必要がある。</u><br>
<u>例えば、Raspberry Pi OS Bullseyeのlibstdc++.so.6ファイルはGLIBCXX_3.4.28までであるため、GCC 10ツールチェーン、または、それ以前のものを使用する。</u><br>
<u>例えば、Raspberry Pi OS Bullseyeのlibstdc++.so.6ファイルはGLIBCXX_3.4.28までであるため、GCC 10ツールチェーン、または、それ以前のものを使用する。</u><br>
<u>また、Raspberry Pi OS Bookwormのlibstdc++.so.6ファイルはGLIBCXX_3.4.30までであるため、GCC 12ツールチェーン、または、それ以前のものを使用する。</u><br>
<br>
<br>
* GCCツールチェーン群
* GCCツールチェーン群
73行目: 77行目:
|+ 表. Raspberry PiとLTO(Link Time Optimization)フラグの関係
|+ 表. Raspberry PiとLTO(Link Time Optimization)フラグの関係
|-
|-
! style="background-color:#00ffff;" | Raspberry Piの種類  
! style="background-color:#66ccff;" | Raspberry Piの種類
! style="background-color:#00ffff;" | LTO(Link Time Optimization)フラグ
! style="background-color:#66ccff;" | LTO(Link Time Optimization)フラグ
|-
|-
| Raspberry Pi Zero/W/WH<br>Raspberry Pi 1 Model A / B / A+ / B+ || -march=armv6 -mfloat-abi=hard -mfpu=vfp
| Raspberry Pi Zero/W/WH<br>Raspberry Pi 1 Model A / B / A+ / B+ || -march=armv6 -mfloat-abi=hard -mfpu=vfp
134行目: 138行目:
* Raspberry Pi OS Bullseye
* Raspberry Pi OS Bullseye
  ## EGLを使用する場合
  ## EGLを使用する場合
  sudo apt install ccache libicu-dev icu-devtools libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev \
  sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2           \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \
                   libevdev-devlibblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev               \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol1-dev libwacom-dev \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol1-dev libwacom-dev   \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libfontconfig1-dev libdbus-1-dev libjpeg-dev libasound2-dev libudev-dev                         \
                  libxcb-xinerama0 libxcb-xinerama0-dev gdbserver
                  libssl-dev libssl1.0-dev libnss3-dev gdbserver                                                  \
                  libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev libxkbcommon-dev
                   python2 libpython2.7          # QtQuickを使用する場合
                   python2 libpython2.7          # QtQuickを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
146行目: 151行目:
   
   
  ## XCBを使用する場合
  ## XCBを使用する場合
  sudo apt install ccache libicu-dev icu-devtools libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev \
  sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev       \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev     \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev                                 \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol1-dev libwacom-dev \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol1-dev libwacom-dev           \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev   \
                  libxcb-xinerama0 libxcb-xinerama0-dev gdbserver \
                  libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev libssl-dev libssl1.0-dev gdbserver             \
                   libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev \
                   libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev \
                   libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev \
                   libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev         \
                   libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \
                   libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \
                   libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev \
                   libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev         \
                   libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev  
                   libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev
                   python2 libpython2.7          # QtQuickを使用する場合
                   python2 libpython2.7          # QtQuickを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
164行目: 169行目:
* Raspberry Pi OS Bookworm
* Raspberry Pi OS Bookworm
  ## EGLを使用する場合
  ## EGLを使用する場合
  sudo apt install ccache libicu-dev icu-devtools libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev \
  sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev   \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev                             \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev       \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev           \
                   libxcb-xinerama0 libxcb-xinerama0-dev gdbserver
                  libssl-dev libssl1.0-dev libnss3-dev gdbserver                                                    \
                   libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
175行目: 181行目:
   
   
  ## XCBを使用する場合
  ## XCBを使用する場合
  sudo apt install ccache libicu-dev icu-devtools libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev \
  sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev           \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev         \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev                                     \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev               \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libxcb-xinerama0 libxcb-xinerama0-dev gdbserver \
                   libxcb-xinerama0 libxcb-xinerama0-dev libssl-dev libssl1.0-dev libnss3-dev gdbserver                       \
                   libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev \
                   libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev   \
                   libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev \
                   libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev             \
                   libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \
                   libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev   \
                   libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev \
                   libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev           \
                   libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev  
                   libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
198行目: 204行目:
|+ その他のライブラリ(オプション)
|+ その他のライブラリ(オプション)
|-
|-
! style="background-color:#66ccff;" | 機能  
! style="background-color:#66ccff;" | 機能
! style="background-color:#66ccff;" | インストールするライブラリ  
! style="background-color:#66ccff;" | インストールするライブラリ
! style="background-color:#66ccff;" | configureスクリプトのオプション
! style="background-color:#66ccff;" | configureスクリプトのオプション
|-
|-
| Bluetooth || bluez bluez-tools libbluetooth-dev ||  
| Bluetooth || bluez bluez-tools libbluetooth-dev ||
|-
|-
| 画像 || libjpeg-dev libpng-dev libtiff-dev libwebp-dev libmng-dev libjasper-dev ||  
| 画像 || libjpeg-dev libpng-dev libtiff-dev libwebp-dev libmng-dev libjasper-dev ||
|-
|-
| コーデック || libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libx265-dev ||
| コーデック || libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libx265-dev ||
|-
|-
| マルチメディア || libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good<br>gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad libgstreamer-plugins-bad1.0-dev gstreamer1.0-pulseaudio<br>gstreamer1.0-tools gstreamer1.0-alsa<br>libwayland-dev (Wayland開発パッケージは、gstreamerヘッダで必要) ||
| マルチメディア || libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good<br>gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-pulseaudio<br>gstreamer1.0-tools gstreamer1.0-alsa<br>libwayland-dev (Wayland開発パッケージは、gstreamerヘッダで必要)<br><br>
<u>※注意</u><br>
<u>以下に示すライブラリをインストールする場合、依存関係としてQt D-Busライブラリもインストールされる。</u><br>
<u>しかし、Qt D-Busライブラリが存在する場合、Qtライブラリのクロスビルドに失敗する可能性がある。</u><br>
libgstreamer-plugins-bad1.0-dev
||
|-
|-
| ALSAオーディオ || libasound2-dev ||  
| ALSAオーディオ || libasound2-dev ||
|-
|-
| Pulseオーディオ || pulseaudio libpulse-dev ||  
| Pulseオーディオ || pulseaudio libpulse-dev ||
|-
|-
| OpenALオーディオ || libopenal-data libopenal1 libopenal-dev libsndio7.0 libsndio-dev ||
| OpenALオーディオ || libopenal-data libopenal1 libopenal-dev libsndio7.0 libsndio-dev ||
|-
|-
| データベース || unixodbc-dev (ODBC)<br>libsqlite3-dev (SQLite)<br>libpq-dev(PostgreSQL)<br>libmariadb-dev(MariaDB / MySQL)
| FFmpeg ||
|
* libavcodec-dev : オーディオ・ビデオのコーデック機能
* libavformat-dev : メディアコンテナフォーマットの処理
* libavutil-dev : FFmpegの共通ユーティリティ機能
* libswscale-dev : 画像のスケーリングと色空間変換の処理
* libswresample-dev : オーディオのリサンプリング機能
* libavdevice-dev : デバイスからのメディア入出力をサポート
<br>VAAPIサポート (ハードウェアアクセラレーション) を有効にする場合:<br>libva-dev libdrm-dev
||
|-
| データベース || unixodbc-dev (ODBC)<br>libsqlite3-dev (SQLite)<br>libpq-dev(PostgreSQL)<br>libmariadb-dev(MariaDB / MySQL) ||  
|-
|-
| プリンタ || libcups2-dev ||  
| プリンタ || libcups2-dev ||
|-
|-
| Qt Speech || flite1-dev ||  
| Qt Speech || flite1-dev ||
|-
|-
| Qt GamePad || libsdl2-dev ||  
| Qt GamePad || libsdl2-dev ||
|-
|-
| Wayland || libwayland-dev libwayland-dev libkwaylandserver-dev waylandpp-dev libwayland-egl-backend-dev ||  
| Wayland || libwayland-dev libwayland-dev waylandpp-dev libwayland-egl-backend-dev ||
|-
|-
| X11 || libx11-dev libxcb1-dev  libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev<br>libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev<br>libxcb-glx0-dev  libxcb-keysyms1-dev libxcb-image0-dev  libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev<br>libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev  libxcb-util0-dev<br> libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev<br><br>もし、xcbに関連するパッケージを全てインストールする場合は、<code>sudo apt install "libxcb-*"</code>を実行する。 ||  
| X11 || libx11-dev libxcb1-dev  libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev<br>libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev<br>libxcb-glx0-dev  libxcb-keysyms1-dev libxcb-image0-dev  libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev<br>libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev  libxcb-util0-dev<br> libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev<br><br>もし、xcbに関連するパッケージを全てインストールする場合は、<code>sudo apt install "libxcb-*"</code>を実行する。 ||
|-
|-
| WebEngine || 必須 :<br>flex bison gperf libre2-dev libnss3-dev libdrm-dev<br><br>オプション1 :<br>libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev libevent-dev libprotobuf-dev<br>protobuf-compiler<br><br>オプション2(不安定なため注意すること) :<br>libopus-dev libvpx-dev ||  
| WebEngine || 必須 :<br>flex bison gperf libre2-dev libnss3-dev libdrm-dev<br><br>オプション1 :<br>libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev libevent-dev libprotobuf-dev<br>protobuf-compiler<br><br>オプション2(不安定なため注意すること) :<br>libopus-dev libvpx-dev ||
|-
|-
| アクセシビリティ || at-spi2-core libatspi2.0-dev gir1.2-atspi-2.0 ||  
| アクセシビリティ || at-spi2-core libatspi2.0-dev gir1.2-atspi-2.0 ||
|-
|-
| SCTP || libsctp1 libsctp-dev || -sctp
| SCTP || libsctp1 libsctp-dev || -sctp
272行目: 292行目:
また、Raspberry Piのいくつかのルートディレクトリと同期する必要があるため、システムルートディレクトリも作成する。<br>
また、Raspberry Piのいくつかのルートディレクトリと同期する必要があるため、システムルートディレクトリも作成する。<br>
  mkdir -p ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/lib ~/Program/Qt_Embedded/sysroot/opt \
  mkdir -p ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/lib ~/Program/Qt_Embedded/sysroot/opt \
           ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/usr/share  
           ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/usr/share
<br>
<br>
<code>rsync</code>コマンドを使用して、Raspberry Piに存在するいくつかのディレクトリから、ファイルをダウンロードする。<br>
<code>rsync</code>コマンドを使用して、Raspberry Piに存在するいくつかのディレクトリから、ファイルをダウンロードする。<br>
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include ~/Program/Qt_Embedded/sysroot/usr
            <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib                 \
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib ~/Program/Qt_Embedded/sysroot/usr
            <Raspberry Piのシステムルートディレクトリ>
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/share/pkgconfig ~/Program/Qt_Embedded/sysroot/usr/share
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \
            <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include         \
            /<Raspberry Piのシステムルートディレクトリ>/usr
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \
            <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib             \
            /<Raspberry Piのシステムルートディレクトリ>/usr
  rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \
            <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/share/pkgconfig \
            /<Raspberry Piのシステムルートディレクトリ>/usr/share
<br>
<br>
ダウンロードしたファイルおよびディレクトリのシンボリックリンクを相対的に調整する。<br>
ダウンロードしたファイルおよびディレクトリのシンボリックリンクを相対的に調整する。<br>
284行目: 315行目:
  wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
  wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
  chmod +x sysroot-relativelinks.py
  chmod +x sysroot-relativelinks.py
  ./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot
  ./sysroot-relativelinks.py <Raspberry Piのシステムルートディレクトリ>
<br><br>
<br><br>


472行目: 503行目:
   
   
  #include "../../linux-g++/qplatformdefs.h"
  #include "../../linux-g++/qplatformdefs.h"
</syntaxhighlight>
<br><br>
== CMakeツールチェーンファイルの作成 ==
==== Raspberry Pi OS Bullseye / Bookworm 32ビットの場合 ====
<syntaxhighlight lang="cmake">
# Raspberry Pi OS Bullseye / Bookworm 32ビットの場合
cmake_minimum_required(VERSION 3.18)
include_guard(GLOBAL)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 32ビットのシステムルートディレクトリのパス>")
set(CMAKE_SYSROOT  ${TARGET_SYSROOT})
set(ENV{PKG_CONFIG_PATH}  ENV{PKG_CONFIG_PATH}:${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf/pkgconfig)
set(ENV{PKG_CONFIG_LIBDIR} /usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf/pkgconfig:${TARGET_SYSROOT}/usr/share/pkgconfig)
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})
set(CMAKE_C_COMPILER    "/<ARM向けクロスコンパイラのインストールパス>/bin/arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER  "/<ARM向けクロスコンパイラのインストールパス>/bin/arm-linux-gnueabihf-g++")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${TARGET_SYSROOT}/usr/include -I${TARGET_SYSROOT}/usr/include/arm-linux-gnueabihf")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS_INIT    "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf")
set(CMAKE_MODULE_LINKER_FLAGS_INIT  "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf")
set(CMAKE_SHARED_LINKER_FLAGS_INIT  "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf")
# Raspberry Pi 3B / 3B+ の場合
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
# Raspberry Pi 4B の場合
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a72")
# Raspberry Pi 5 の場合
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76")
set(QT_COMPILER_FLAGS ${SOC_FLAG})
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})
set(GL_INC_DIR ${TARGET_SYSROOT}/usr/include)
set(GL_LIB_DIR ${TARGET_SYSROOT}:${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf/:${TARGET_SYSROOT}/usr:${TARGET_SYSROOT}/usr/lib)
set(EGL_INCLUDE_DIR ${GL_INC_DIR})
set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libEGL.so)
set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libOpenGL.so)
set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libGLESv2.so)
set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libGLESv2.so)
set(gbm_INCLUDE_DIR ${GL_INC_DIR})
set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libgbm.so)
set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libdrm.so)
set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libxcb.so)
</syntaxhighlight>
<br>
==== Raspberry Pi OS Bullseye / Bookworm 64ビットの場合 ====
<syntaxhighlight lang="cmake">
# Raspberry Pi OS Bullseye / Bookworm 64ビットの場合
cmake_minimum_required(VERSION 3.18)
include_guard(GLOBAL)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 64ビットのシステムルートディレクトリのパス>")
set(CMAKE_SYSROOT ${TARGET_SYSROOT})
set(ENV{PKG_CONFIG_PATH}  $PKG_CONFIG_PATH:${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu/pkgconfig)
set(ENV{PKG_CONFIG_LIBDIR} /usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig/:${TARGET_SYSROOT}/usr/lib/pkgconfig:${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu/pkgconfig:${TARGET_SYSROOT}/usr/share/pkgconfig)
set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})
set(CMAKE_C_COMPILER    /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER  /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-g++)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${TARGET_SYSROOT}/usr/include -I${TARGET_SYSROOT}/usr/include/aarch64-linux-gnu")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS_INIT    "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu")
set(CMAKE_MODULE_LINKER_FLAGS_INIT  "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu")
set(CMAKE_SHARED_LINKER_FLAGS_INIT  "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu")
# Raspberry Pi 3B / 3B+ の場合
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
# Raspberry Pi 4B の場合
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a72")
# Raspberry Pi 5 の場合
set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76")
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})
set(GL_INC_DIR ${TARGET_SYSROOT}/usr/include)
set(GL_LIB_DIR ${TARGET_SYSROOT}:${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu/:${TARGET_SYSROOT}/usr:${TARGET_SYSROOT}/usr/lib)
set(EGL_INCLUDE_DIR ${GL_INC_DIR})
set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libEGL.so)
set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libOpenGL.so)
set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so)
set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so)
set(gbm_INCLUDE_DIR ${GL_INC_DIR})
set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libgbm.so)
set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libdrm.so)
set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libxcb.so)
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>
504行目: 678行目:
  -DQT_FEATURE_opengles2=ON          \
  -DQT_FEATURE_opengles2=ON          \
  -DQT_FEATURE_opengles3=ON          \
  -DQT_FEATURE_opengles3=ON          \
-DQT_FEATURE_kms=ON                \  # V3DおよびVC4ドライバを使用する場合
  -DCMAKE_TOOLCHAIN_FILE=<CMakeデバイスファイルのパス>            \
  -DCMAKE_TOOLCHAIN_FILE=<CMakeデバイスファイルのパス>            \
  -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON                    \
  -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON                    \
519行目: 694行目:
  -DQT_FEATURE_xcb=OFF    \  # EGLFSを使用する場合
  -DQT_FEATURE_xcb=OFF    \  # EGLFSを使用する場合
  -DQT_FEATURE_xlib=OFF    \  # EGLFSを使用する場合
  -DQT_FEATURE_xlib=OFF    \  # EGLFSを使用する場合
-DBUILD_WITH_PCH=ON      \  # プリコンパイル済みのヘッダを無効化する場合
  -DCMAKE_SYSROOT=$SYSROOT \
  -DCMAKE_SYSROOT=$SYSROOT \
  -DQT_HOST_PATH=<x86 64向けQt 6のパスのトップディレクトリ  例: /home/user/Qt/6.x.x/gcc_64>                      \
  -DQT_HOST_PATH=<x86 64向けQt 6のパスのトップディレクトリ  例: /home/user/Qt/6.x.x/gcc_64>                      \
555行目: 731行目:
  -DQT_FEATURE_opengles2=ON          \
  -DQT_FEATURE_opengles2=ON          \
  -DQT_FEATURE_opengles3=ON          \
  -DQT_FEATURE_opengles3=ON          \
-DQT_FEATURE_kms=ON                \  # V3DおよびVC4ドライバを使用する場合
  -DCMAKE_TOOLCHAIN_FILE=<CMakeデバイスファイルのパス>            \
  -DCMAKE_TOOLCHAIN_FILE=<CMakeデバイスファイルのパス>            \
  -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON                    \
  -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON                    \
570行目: 747行目:
  -DQT_FEATURE_xcb=ON      \  # XCBを使用する場合
  -DQT_FEATURE_xcb=ON      \  # XCBを使用する場合
  -DQT_FEATURE_xlib=ON    \  # XCBを使用する場合
  -DQT_FEATURE_xlib=ON    \  # XCBを使用する場合
-DBUILD_WITH_PCH=ON      \  # プリコンパイル済みのヘッダを無効化する場合
  -DCMAKE_SYSROOT=$SYSROOT \
  -DCMAKE_SYSROOT=$SYSROOT \
  -DQT_HOST_PATH=<x86 64向けQt 6のパスのトップディレクトリ  例: /home/user/Qt/6.x.x/gcc_64>                      \
  -DQT_HOST_PATH=<x86 64向けQt 6のパスのトップディレクトリ  例: /home/user/Qt/6.x.x/gcc_64>                      \
602行目: 780行目:
|+ 必須およびオプションのライブラリ
|+ 必須およびオプションのライブラリ
|-
|-
! style="background-color:#00ffff;" |
! style="background-color:#00ffff;" |
! style="background-color:#00ffff;" | ライブラリ名  
! style="background-color:#00ffff;" | ライブラリ名
! style="background-color:#00ffff;" | 備考
! style="background-color:#00ffff;" | 備考
|-
|-
| 必須 || flex bison gperf libre2-dev libnss3-dev ||  
| 必須 || flex bison gperf libre2-dev libnss3-dev ||
|-
|-
| X11対応に必要 || libdrm-dev libxdamage-dev || XCB / X11を使用する場合、<br>これらのライブラリが必要である。
| X11対応に必要 || libdrm-dev libxdamage-dev || XCB / X11を使用する場合、<br>これらのライブラリが必要である。
699行目: 877行目:
|+ ビルド時の問題点と解決策
|+ ビルド時の問題点と解決策
|-
|-
! style="background-color:#00ffff;" | QtWebEngineのバージョン  
! style="background-color:#00ffff;" | QtWebEngineのバージョン
! style="background-color:#00ffff;" | 問題  
! style="background-color:#00ffff;" | 問題
! style="background-color:#00ffff;" | 解決策  
! style="background-color:#00ffff;" | 解決策
|-
|-
| 5.15.2 || Internal Compiler Error, gcc 8.30<br><br>internal compiler error: in convert_move, at expr.c:218<br> static void exec_ops(const Op* ops, const void** args, || [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96206 GCC Bugzilla bug report]<br><br>Build for ARMv7<br>Patch the source to disable optimization
| 5.15.2 || Internal Compiler Error, gcc 8.30<br><br>internal compiler error: in convert_move, at expr.c:218<br> static void exec_ops(const Op* ops, const void** args, || [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96206 GCC Bugzilla bug report]<br><br>Build for ARMv7<br>Patch the source to disable optimization
914行目: 1,092行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== ビルドエラー関連 : X Keyboardに関するエラー ====
==== ビルドエラー : X Keyboardに関するエラー ====
コンパイル時において、以下に示すようなエラーが出力される場合がある。<br>
コンパイル時において、以下に示すようなエラーが出力される場合がある。<br>
  error: XKB_KEY_dead_lowline was not declared in this scope; did you mean XKB_KEY_dead_belowring?
  error: XKB_KEY_dead_lowline was not declared in this scope; did you mean XKB_KEY_dead_belowring?
935行目: 1,113行目:
<br>
<br>
この時、以下に示すファイルを編集する。<br>
この時、以下に示すファイルを編集する。<br>
これにより、ターゲットが存在する場合のみ依存関係を追加するようになる。<br>
  vi /<Qt 6のソースコードがあるディレクトリ>/qttools/src/assistant/qhelpgenerator/CMakeLists.txt
  vi /<Qt 6のソースコードがあるディレクトリ>/qttools/src/assistant/qhelpgenerator/CMakeLists.txt
<br>
<br>
  <syntaxhighlight lang="cmake">  
  <syntaxhighlight lang="cmake">
  # /<Qt 6のソースコードがあるディレクトリ>/qttools/src/assistant/qhelpgenerator/CMakeLists.txtファイル 66行目
  # /<Qt 6のソースコードがあるディレクトリ>/qttools/src/assistant/qhelpgenerator/CMakeLists.txtファイル 66行目
   
   
  # 編集前
  # 編集前
  add_dependencies(qhelpgenerator ${needed_plugins})
  else() # QT_BUILD_SHARED_LIBS
    if(QT_SUPERBUILD)
      add_dependencies(qhelpgenerator ${needed_plugins})
    endif()
endif()
   
   
  # 編集後
  # 編集後
  #add_dependencies(qhelpgenerator ${needed_plugins})
  else() # QT_BUILD_SHARED_LIBS
    if(QT_SUPERBUILD)
      if(TARGET qhelpgenerator)
          add_dependencies(qhelpgenerator ${needed_plugins})
      endif()
    endif()
endif()
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== ビルドエラー関連 : Qt Toolのqhelpgeneratorに関するエラー ====
 
==== ビルドエラー : Qt Toolのqhelpgeneratorに関するエラー ====
ビルド時において、以下に示すようなエラーが出力される場合がある。<br>
ビルド時において、以下に示すようなエラーが出力される場合がある。<br>
  error: 'google::protobuf::FileDescriptor::Syntax google::protobuf::FileDescriptor::syntax() const'
  error: 'google::protobuf::FileDescriptor::Syntax google::protobuf::FileDescriptor::syntax() const'
959行目: 1,149行目:
   
   
  # ...略
  # ...略
<br>
==== ビルドエラー : libQt6DBusに関するエラー ====
以下に示すようなエラーが発生する場合がある。<br>
libQt6DBus.so.6: undefined reference to
`QtPrivate::QPropertyBindingData::notifyObserver_helper(QUntypedPropertyData*, QBindingStorage*, QPropertyObserverPointer, QVarLengthArray<QBindingObserverPtr, 256ll>&) const@Qt_6`
<br>
システムルート内の既存のQt6ライブラリを一時的に隔離する。<br>
これにより、ビルドプロセスが誤ったライブラリを参照することを防ぐ。<br>
<br>
システムルートのライブラリディレクトリ内のQt6関連の共有ライブラリファイルを別のディレクトリに移動させる。<br>
cd /<Raspberry_Piのシステムルート>/usr/lib/aarch64-linux-gnu
mkdir -p Qt6_Backup
mv libQt6*.so* Qt6_Backup/
<br>
これにより、クロスコンパイル時に古いQt 6ライブラリが誤ってリンクされることを防ぐ。<br>
<br>
==== ビルドエラー : Waylandに関するエラー ====
Qt 6をビルドする場合、以下に示すようなエラーが出力される場合がある。<br>
wayland-fullscreen-shell-unstable-v1-client-protocol.h:XXX:Y: error: 'wl_proxy_marshal_flags' was not declared in this scope; did you mean 'wl_proxy_marshal_array'?
wayland-fullscreen-shell-unstable-v1-client-protocol.h:XXX:Y: error wl_proxy_marshal_flags was not declared in this scope; did you mean wl_proxy_marshal_array?
<br>
このエラーは、ターゲットデバイスにインストールされているWaylandライブラリのバージョンが古いため発生する。<br>
例えば、Qt 6.5をビルドする場合は、Wayland 1.19以降が必要となる。<br>
<br>
そのため、ターゲットデバイスのOSをアップグレード、あるいは、Waylandライブラリをソースコードからインストールする必要がある。<br>
例えば、Raspberry Pi OS bullseyeを使用している場合はBookwormにアップグレードする。<br>
<br><br>
== Qt Creatorに関するエラー ==
==== Qt Creator 14のリモートデバッグに関するエラー ====
Qt Creator 14 および GDBを使用してリモートデバッグを実行する時、以下に示すようなメッセージが表示された後、デバッガがハングする場合がある。<br>
<br>
使用可能なポートを確認中...
xx:yy:zz: Found 101 free ports.
xx:yy:zz: /usr/bin/gdbserver --multi :10000 on <ターゲットデバイス名> を起動中...
xx:yy:zz: Debugging ssh://<ユーザ名>@<ホスト名>/<デプロイ先>/<実行ファイル名> ...
xx:yy:zz: Debugging of ssh://<ユーザ名>@<ホスト名>/<デプロイ先>/<実行ファイル名> has finished.
<br>
Listening on port 10000
<br>
この時、Qt Creator 14は使用せずに、Qt Creator 13以前を使用する必要がある。<br>
<br>
==== ロケールに関する警告 ====
デバッグ開始時において、以下に示す警告が表示される場合がある。<br>
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
<br>
この警告は、Raspberry Pi側のロケール設定がUTF-8ではないため、Qtが自動的にロケールを切り替えていることを示している。<br>
<br>
Qt Creatorのデバッグ設定において、環境変数を明示的に設定する。<br>
# [プロジェクト]を開いて、Qt Creatorのメイン画面左ペインにある[プロジェクト] - 該当するキット内にある[実行]を選択する。
# 次に、[環境]セクションの[詳細]ボタンを押下して、以下に示す設定を追加する。
#: <syntaxhighlight lang="text">
LANG=C.UTF-8
LC_ALL=C.UTF-8
</syntaxhighlight>
<br><br>
<br><br>


1,174行目: 1,424行目:
<br><br>
<br><br>


{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry Pi]][[カテゴリ:Qt]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry Pi]][[カテゴリ:Qt]]