「インストール - Qt6 Raspberry Pi」の版間の差分

編集の要約なし
編集の要約なし
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;"
27行目: 27行目:
  sudo zypper install autoconf automake cmake unzip tar git wget pkg-config gperf gcc gcc-c++ \
  sudo zypper install autoconf automake cmake unzip tar git wget pkg-config gperf gcc gcc-c++ \
                     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をインストールする場合
                     libicu-devel libopus-devel openjpeg2-devel pciutils-devel libpciaccess-devel libxshmfence-devel python3-html5lib \  # QtWebEngineをインストールする場合
                     libvpx-devel                                                                                                        # QtWebEngineをインストールする場合
                     libvpx-devel                                                                                                        # QtWebEngineをインストールする場合
 
                     ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel      \  # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel      \  # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libavresample-devel ffmpeg-4-libavutil-devel ffmpeg-4-libpostproc-devel ffmpeg-4-libswresample-devel    \  # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libavresample-devel ffmpeg-4-libavutil-devel ffmpeg-4-libpostproc-devel ffmpeg-4-libswresample-devel    \  # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libswscale-devel ffmpeg-4-private-devel                                                                    # QtWebEngineをインストールする場合 (デフォルトパッケージ)
                     ffmpeg-4-libswscale-devel ffmpeg-4-private-devel                                                                    # QtWebEngineをインストールする場合 (デフォルトパッケージ)
 
                     ffmpeg-6-libavcodec-devel ffmpeg-6-libavdevice-devel ffmpeg-6-libavfilter-devel ffmpeg-6-libavformat-devel      \  # QtWebEngineをインストールする場合 (Packmanパッケージ)
                     ffmpeg-6-libavcodec-devel ffmpeg-6-libavdevice-devel ffmpeg-6-libavfilter-devel ffmpeg-6-libavformat-devel      \  # QtWebEngineをインストールする場合 (Packmanパッケージ)
                     ffmpeg-6-libavresample-devel ffmpeg-6-libavutil-devel ffmpeg-6-libpostproc-devel ffmpeg-6-libswresample-devel    \  # QtWebEngineをインストールする場合 (Packmanパッケージ)
                     ffmpeg-6-libavresample-devel ffmpeg-6-libavutil-devel ffmpeg-6-libpostproc-devel ffmpeg-6-libswresample-devel    \  # QtWebEngineをインストールする場合 (Packmanパッケージ)
58行目: 58行目:
  # 32ビット向け
  # 32ビット向け
  tar xf gcc-linaro-<バージョン>-x86_64_arm-linux-gnueabihf.tar.xz
  tar xf gcc-linaro-<バージョン>-x86_64_arm-linux-gnueabihf.tar.xz
 
  # 64ビット向け
  # 64ビット向け
  tar xf gcc-linaro-<バージョン>-x86_64_aarch64-linux-gnu.tar.xz
  tar xf gcc-linaro-<バージョン>-x86_64_aarch64-linux-gnu.tar.xz
73行目: 73行目:
|+ 表. Raspberry PiとLTO(Link Time Optimization)フラグの関係
|+ 表. Raspberry PiとLTO(Link Time Optimization)フラグの関係
|-
|-
! style="background-color:#00ffff;" | Raspberry Piの種類  
! style="background-color:#00ffff;" | Raspberry Piの種類
! style="background-color:#00ffff;" | LTO(Link Time Optimization)フラグ
! style="background-color:#00ffff;" | LTO(Link Time Optimization)フラグ
|-
|-
106行目: 106行目:
<br>
<br>
  # /etc/apt/sources.listファイル
  # /etc/apt/sources.listファイル
 
  # Bullseyeの場合
  # Bullseyeの場合
  ## 編集前
  ## 編集前
  #deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
  #deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
 
  ## 編集後
  ## 編集後
  deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
  deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
145行目: 145行目:
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
                   libgles2-mesa-dev libgbm-dev  # Raspberry Pi 4Bを使用する場合
                   libgles2-mesa-dev libgbm-dev  # Raspberry Pi 4Bを使用する場合
 
  ## XCBを使用する場合
  ## XCBを使用する場合
  sudo apt install ccache libicu-dev icu-devtools libb2-dev 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        \
157行目: 157行目:
                   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ネイティブテーマを使用する場合
171行目: 171行目:
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev          \
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev          \
                   libssl-dev libssl1.0-dev libnss3-dev gdbserver                                                    \
                   libssl-dev libssl1.0-dev libnss3-dev gdbserver                                                    \
                   libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev  
                   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ビットを使用する場合
                   libgles2-mesa-dev libgbm-dev  # Raspberry Pi 4Bを使用する場合
                   libgles2-mesa-dev libgbm-dev  # Raspberry Pi 4Bを使用する場合
 
  ## XCBを使用する場合
  ## XCBを使用する場合
  sudo apt install ccache libicu-dev icu-devtools libb2-dev 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          \
187行目: 187行目:
                   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ビットを使用する場合
200行目: 200行目:
|+ その他のライブラリ(オプション)
|+ その他のライブラリ(オプション)
|-
|-
! 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 ||
214行目: 214行目:
<u>以下に示すライブラリをインストールする場合、依存関係としてQt D-Busライブラリもインストールされる。</u><br>
<u>以下に示すライブラリをインストールする場合、依存関係としてQt D-Busライブラリもインストールされる。</u><br>
<u>しかし、Qt D-Busライブラリが存在する場合、Qtライブラリのクロスビルドに失敗する可能性がある。</u><br>
<u>しかし、Qt D-Busライブラリが存在する場合、Qtライブラリのクロスビルドに失敗する可能性がある。</u><br>
  libgstreamer-plugins-bad1.0-dev  
  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 ||
226行目: 226行目:
|
|
|-
|-
| プリンタ || 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 libkwaylandserver-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
279行目: 279行目:
また、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>
285行目: 285行目:
             <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib                \
             <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib                \
             <Raspberry Piのシステムルートディレクトリ>
             <Raspberry Piのシステムルートディレクトリ>
 
  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        \
             <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include        \
             /<Raspberry Piのシステムルートディレクトリ>/usr
             /<Raspberry Piのシステムルートディレクトリ>/usr
 
  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/lib            \
             <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib            \
             /<Raspberry Piのシステムルートディレクトリ>/usr
             /<Raspberry Piのシステムルートディレクトリ>/usr
 
  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/share/pkgconfig \
             <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/share/pkgconfig \
339行目: 339行目:
  <syntaxhighlight lang="make">
  <syntaxhighlight lang="make">
  # qmake.confファイル
  # qmake.confファイル
 
  include(../common/linux_device_pre.conf)
  include(../common/linux_device_pre.conf)
 
  SYSROOT_INC = $$[QT_SYSROOT]/usr/include
  SYSROOT_INC = $$[QT_SYSROOT]/usr/include
  SYSROOT_LIB = $$[QT_SYSROOT]/usr/lib
  SYSROOT_LIB = $$[QT_SYSROOT]/usr/lib
 
  # Extra stuff (OpenGL, DirectFB, ...)
  # Extra stuff (OpenGL, DirectFB, ...)
  QMAKE_INCDIR_EGL        = $$[SYSROOT_INC]                    \
  QMAKE_INCDIR_EGL        = $$[SYSROOT_INC]                    \
362行目: 362行目:
  QMAKE_INCDIR_OPENVG    = $${QMAKE_INCDIR_EGL}
  QMAKE_INCDIR_OPENVG    = $${QMAKE_INCDIR_EGL}
  QMAKE_LIBDIR_OPENVG    = $${QMAKE_LIBDIR_EGL}
  QMAKE_LIBDIR_OPENVG    = $${QMAKE_LIBDIR_EGL}
 
  QMAKE_LIBS_EGL          = -lEGL
  QMAKE_LIBS_EGL          = -lEGL
  QMAKE_LIBS_OPENGL_ES2  = -lGLESv2 $${QMAKE_LIBS_EGL}
  QMAKE_LIBS_OPENGL_ES2  = -lGLESv2 $${QMAKE_LIBS_EGL}
  QMAKE_LIBS_OPENVG      = -lOpenVG $${QMAKE_LIBS_EGL}
  QMAKE_LIBS_OPENVG      = -lOpenVG $${QMAKE_LIBS_EGL}
 
  # Raspberry Pi 3B / 3B+の場合
  # Raspberry Pi 3B / 3B+の場合
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8
 
  # Raspberry Pi 4B 32ビットOSを使用する場合
  # Raspberry Pi 4B 32ビットOSを使用する場合
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72 -mfpu=crypto-neon-fp-armv8
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72 -mfpu=crypto-neon-fp-armv8
 
  # Raspberry Pi 4B 64ビットOSを使用する場合
  # Raspberry Pi 4B 64ビットOSを使用する場合
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72
 
  QMAKE_CFLAGS            = $${COMPILER_FLAGS}
  QMAKE_CFLAGS            = $${COMPILER_FLAGS}
  QMAKE_CXXFLAGS          = $${COMPILER_FLAGS}
  QMAKE_CXXFLAGS          = $${COMPILER_FLAGS}
  QMAKE_CXXFLAGS_RELEASE  += -O3
  QMAKE_CXXFLAGS_RELEASE  += -O3
 
  QMAKE_LIBS              += -lrt -lpthread -ldl
  QMAKE_LIBS              += -lrt -lpthread -ldl
 
  # Raspberry Pi OS 32ビットの場合
  # Raspberry Pi OS 32ビットの場合
  # Raspberry Pi OS 64ビットの場合はコメントアウトする
  # Raspberry Pi OS 64ビットの場合はコメントアウトする
  DISTRO_OPTS            += hard-float
  DISTRO_OPTS            += hard-float
 
  # Raspberry Pi OS 64ビットの場合はコメントを解除する
  # Raspberry Pi OS 64ビットの場合はコメントを解除する
  #DISTRO_OPTS += aarch64
  #DISTRO_OPTS += aarch64
 
  # for Raspberry Pi OS
  # for Raspberry Pi OS
  DISTRO_OPTS            += deb-multi-arch
  DISTRO_OPTS            += deb-multi-arch
 
  # Preferred eglfs backend
  # Preferred eglfs backend
  ## Raspberry Pi 3B / 3B+の場合
  ## Raspberry Pi 3B / 3B+の場合
  EGLFS_DEVICE_INTEGRATION = eglfs_brcm
  EGLFS_DEVICE_INTEGRATION = eglfs_brcm
 
  ## Raspberry Pi 4Bの場合
  ## Raspberry Pi 4Bの場合
  EGLFS_DEVICE_INTEGRATION = eglfs_kms
  EGLFS_DEVICE_INTEGRATION = eglfs_kms
 
  include(../common/linux_arm_device_post.conf)
  include(../common/linux_arm_device_post.conf)
 
  load(qt_config)
  load(qt_config)
  </syntaxhighlight>
  </syntaxhighlight>
409行目: 409行目:
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
  # qplatformdefs.hファイル
  # qplatformdefs.hファイル
 
  #include "../../linux-g++/qplatformdefs.h"
  #include "../../linux-g++/qplatformdefs.h"
  </syntaxhighlight>
  </syntaxhighlight>
422行目: 422行目:
  <syntaxhighlight lang="make">
  <syntaxhighlight lang="make">
  # qmake.confファイル
  # qmake.confファイル
 
  include(../common/linux_device_pre.conf)
  include(../common/linux_device_pre.conf)
 
  SYSROOT_INC = $$[QT_SYSROOT]/usr/include
  SYSROOT_INC = $$[QT_SYSROOT]/usr/include
  SYSROOT_LIB = $$[QT_SYSROOT]/usr/lib
  SYSROOT_LIB = $$[QT_SYSROOT]/usr/lib
 
  # Extra stuff (OpenGL, DirectFB, ...)
  # Extra stuff (OpenGL, DirectFB, ...)
  QMAKE_INCDIR_EGL        = $$[SYSROOT_INC]                    \
  QMAKE_INCDIR_EGL        = $$[SYSROOT_INC]                    \
445行目: 445行目:
  QMAKE_INCDIR_OPENVG    = $${QMAKE_INCDIR_EGL}
  QMAKE_INCDIR_OPENVG    = $${QMAKE_INCDIR_EGL}
  QMAKE_LIBDIR_OPENVG    = $${QMAKE_LIBDIR_EGL}
  QMAKE_LIBDIR_OPENVG    = $${QMAKE_LIBDIR_EGL}
 
  QMAKE_LIBS_EGL          = -lEGL
  QMAKE_LIBS_EGL          = -lEGL
  QMAKE_LIBS_OPENGL_ES2  = -lGLESv2 $${QMAKE_LIBS_EGL}
  QMAKE_LIBS_OPENGL_ES2  = -lGLESv2 $${QMAKE_LIBS_EGL}
  QMAKE_LIBS_OPENVG      = -lOpenVG $${QMAKE_LIBS_EGL}
  QMAKE_LIBS_OPENVG      = -lOpenVG $${QMAKE_LIBS_EGL}
 
  # Raspberry Pi 3B / 3B+の場合
  # Raspberry Pi 3B / 3B+の場合
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8
 
  # Raspberry Pi 4B 32ビットOSを使用する場合
  # Raspberry Pi 4B 32ビットOSを使用する場合
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72 -mfpu=crypto-neon-fp-armv8
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72 -mfpu=crypto-neon-fp-armv8
 
  # Raspberry Pi 4B 64ビットOSを使用する場合
  # Raspberry Pi 4B 64ビットOSを使用する場合
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72
  QMAKE_CFLAGS            = -march=armv8-a -mtune=cortex-a72
 
  QMAKE_CFLAGS            = $${COMPILER_FLAGS}
  QMAKE_CFLAGS            = $${COMPILER_FLAGS}
  QMAKE_CXXFLAGS          = $${COMPILER_FLAGS}
  QMAKE_CXXFLAGS          = $${COMPILER_FLAGS}
  QMAKE_CXXFLAGS_RELEASE  += -O3
  QMAKE_CXXFLAGS_RELEASE  += -O3
 
  QMAKE_LIBS              += -lrt -lpthread -ldl
  QMAKE_LIBS              += -lrt -lpthread -ldl
 
  # Raspberry Pi OS 32ビットの場合
  # Raspberry Pi OS 32ビットの場合
  # Raspberry Pi OS 64ビットの場合はコメントアウトする
  # Raspberry Pi OS 64ビットの場合はコメントアウトする
  DISTRO_OPTS            += hard-float
  DISTRO_OPTS            += hard-float
 
  # Raspberry Pi OS 64ビットの場合はコメントを解除する
  # Raspberry Pi OS 64ビットの場合はコメントを解除する
  #DISTRO_OPTS += aarch64
  #DISTRO_OPTS += aarch64
 
  # for Raspberry Pi OS
  # for Raspberry Pi OS
  DISTRO_OPTS            += deb-multi-arch
  DISTRO_OPTS            += deb-multi-arch
 
  # Preferred eglfs backend
  # Preferred eglfs backend
  EGLFS_DEVICE_INTEGRATION = eglfs_kms
  EGLFS_DEVICE_INTEGRATION = eglfs_kms
 
  include(../common/linux_arm_device_post.conf)
  include(../common/linux_arm_device_post.conf)
 
  load(qt_config)
  load(qt_config)
  </syntaxhighlight>
  </syntaxhighlight>
488行目: 488行目:
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
  # qplatformdefs.hファイル
  # qplatformdefs.hファイル
 
  #include "../../linux-g++/qplatformdefs.h"
  #include "../../linux-g++/qplatformdefs.h"
  </syntaxhighlight>
  </syntaxhighlight>
497行目: 497行目:
  <syntaxhighlight lang="cmake">
  <syntaxhighlight lang="cmake">
  # Raspberry Pi OS Bullseye / Bookworm 32ビットの場合
  # Raspberry Pi OS Bullseye / Bookworm 32ビットの場合
 
  cmake_minimum_required(VERSION 3.18)
  cmake_minimum_required(VERSION 3.18)
  include_guard(GLOBAL)
  include_guard(GLOBAL)
 
  set(CMAKE_SYSTEM_NAME Linux)
  set(CMAKE_SYSTEM_NAME Linux)
  set(CMAKE_SYSTEM_PROCESSOR arm)
  set(CMAKE_SYSTEM_PROCESSOR arm)
 
  set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 32ビットのシステムルートディレクトリのパス>")
  set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 32ビットのシステムルートディレクトリのパス>")
  set(CMAKE_SYSROOT  ${TARGET_SYSROOT})
  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_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_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(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})
 
  set(CMAKE_C_COMPILER    "/<ARM向けクロスコンパイラのインストールパス>/bin/arm-linux-gnueabihf-gcc")
  set(CMAKE_C_COMPILER    "/<ARM向けクロスコンパイラのインストールパス>/bin/arm-linux-gnueabihf-gcc")
  set(CMAKE_CXX_COMPILER  "/<ARM向けクロスコンパイラのインストールパス>/bin/arm-linux-gnueabihf-g++")
  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_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_CXX_FLAGS "${CMAKE_C_FLAGS}")
519行目: 519行目:
  set(CMAKE_MODULE_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")
  set(CMAKE_SHARED_LINKER_FLAGS_INIT  "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/arm-linux-gnueabihf")
 
  # Raspberry Pi 3B / 3B+ の場合
  # Raspberry Pi 3B / 3B+ の場合
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
526行目: 526行目:
  # Raspberry Pi 5 の場合
  # Raspberry Pi 5 の場合
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76")
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76")
 
  set(QT_COMPILER_FLAGS ${SOC_FLAG})
  set(QT_COMPILER_FLAGS ${SOC_FLAG})
  set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
  set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
  set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")
  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_PROGRAM NEVER)
  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
537行目: 537行目:
  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
  set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
 
  set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})
  set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})
 
  set(GL_INC_DIR ${TARGET_SYSROOT}/usr/include)
  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(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_INCLUDE_DIR ${GL_INC_DIR})
  set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libEGL.so)
  set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libEGL.so)
 
  set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
  set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
  set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libOpenGL.so)
  set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libOpenGL.so)
 
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libGLESv2.so)
  set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libGLESv2.so)
 
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libGLESv2.so)
  set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libGLESv2.so)
 
  set(gbm_INCLUDE_DIR ${GL_INC_DIR})
  set(gbm_INCLUDE_DIR ${GL_INC_DIR})
  set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libgbm.so)
  set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libgbm.so)
 
  set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
  set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
  set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libdrm.so)
  set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libdrm.so)
 
  set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
  set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
  set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libxcb.so)
  set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/arm-linux-gnueabihf/libxcb.so)
568行目: 568行目:
  <syntaxhighlight lang="cmake">
  <syntaxhighlight lang="cmake">
  # Raspberry Pi OS Bullseye / Bookworm 64ビットの場合
  # Raspberry Pi OS Bullseye / Bookworm 64ビットの場合
 
  cmake_minimum_required(VERSION 3.18)
  cmake_minimum_required(VERSION 3.18)
  include_guard(GLOBAL)
  include_guard(GLOBAL)
 
  set(CMAKE_SYSTEM_NAME Linux)
  set(CMAKE_SYSTEM_NAME Linux)
  set(CMAKE_SYSTEM_PROCESSOR arm)
  set(CMAKE_SYSTEM_PROCESSOR arm)
 
  set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 64ビットのシステムルートディレクトリのパス>")
  set(TARGET_SYSROOT "<Raspberry Pi Bullseye / Bookworm 64ビットのシステムルートディレクトリのパス>")
  set(CMAKE_SYSROOT ${TARGET_SYSROOT})
  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_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_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(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT})
 
  set(CMAKE_C_COMPILER    /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-gcc)
  set(CMAKE_C_COMPILER    /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-gcc)
  set(CMAKE_CXX_COMPILER  /<ARM向けクロスコンパイラのインストールパス>/bin/aarch64-linux-gnu-g++)
  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_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_CXX_FLAGS "${CMAKE_C_FLAGS}")
590行目: 590行目:
  set(CMAKE_MODULE_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")
  set(CMAKE_SHARED_LINKER_FLAGS_INIT  "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/aarch64-linux-gnu")
 
  # Raspberry Pi 3B / 3B+ の場合
  # Raspberry Pi 3B / 3B+ の場合
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
597行目: 597行目:
  # Raspberry Pi 5 の場合
  # Raspberry Pi 5 の場合
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76")
  set(SOC_FLAG "-march=armv8-a -mtune=cortex-a76")
 
  set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
  set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
  set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")
  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_PROGRAM NEVER)
  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
607行目: 607行目:
  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
  set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
  set(CMAKE_BUILD_RPATH ${TARGET_SYSROOT})
 
  set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})
  set(XCB_PATH_VARIABLE ${TARGET_SYSROOT})
 
  set(GL_INC_DIR ${TARGET_SYSROOT}/usr/include)
  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(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_INCLUDE_DIR ${GL_INC_DIR})
  set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libEGL.so)
  set(EGL_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libEGL.so)
 
  set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
  set(OPENGL_INCLUDE_DIR ${GL_INC_DIR})
  set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libOpenGL.so)
  set(OPENGL_opengl_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libOpenGL.so)
 
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so)
  set(GLIB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so)
 
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLESv2_INCLUDE_DIR ${GL_INC_DIR})
  set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so)
  set(GLESv2_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libGLESv2.so)
 
  set(gbm_INCLUDE_DIR ${GL_INC_DIR})
  set(gbm_INCLUDE_DIR ${GL_INC_DIR})
  set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libgbm.so)
  set(gbm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libgbm.so)
 
  set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
  set(Libdrm_INCLUDE_DIR ${GL_INC_DIR})
  set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libdrm.so)
  set(Libdrm_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libdrm.so)
 
  set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
  set(XCB_XCB_INCLUDE_DIR ${GL_INC_DIR})
  set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libxcb.so)
  set(XCB_XCB_LIBRARY ${XCB_PATH_VARIABLE}/usr/lib/aarch64-linux-gnu/libxcb.so)
640行目: 640行目:
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  # EGLFSの場合
  # EGLFSの場合
 
  # ビルドディレクトリを作成
  # ビルドディレクトリを作成
  mkdir /<Qtのソースコードがあるディレクトリ>/../build && cd /<Qtのソースコードがあるディレクトリ>/../build
  mkdir /<Qtのソースコードがあるディレクトリ>/../build && cd /<Qtのソースコードがあるディレクトリ>/../build
 
  export CROSS_PI_PATH=/<GCC ARMツールチェインのインストールディレクトリ>
  export CROSS_PI_PATH=/<GCC ARMツールチェインのインストールディレクトリ>
 
  # Raspberry Pi OS 32ビットの場合
  # Raspberry Pi OS 32ビットの場合
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/arm-linux-gnueabihf-
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/arm-linux-gnueabihf-
 
  # Raspberry Pi OS 64ビットの場合
  # Raspberry Pi OS 64ビットの場合
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/aarch64-linux-gnu-
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/aarch64-linux-gnu-
 
  # システムルードディレクトリの指定
  # システムルードディレクトリの指定
  export SYSTEMROOT=<Raspberry Pi OSのシステムルートディレクトリ>
  export SYSTEMROOT=<Raspberry Pi OSのシステムルートディレクトリ>
  export PKG_CONFIG_SYSROOT_DIR=$SYSTEMROOT
  export PKG_CONFIG_SYSROOT_DIR=$SYSTEMROOT
 
  export PKG_CONFIG_PATH=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig
  export PKG_CONFIG_PATH=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig
  export PKG_CONFIG_LIBDIR=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/share/pkgconfig
  export PKG_CONFIG_LIBDIR=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/share/pkgconfig
 
  cmake -G Ninja \
  cmake -G Ninja \
  <Qt 6のソースコードがあるディレクトリ>      \
  <Qt 6のソースコードがあるディレクトリ>      \
693行目: 693行目:
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  # XCBの場合
  # XCBの場合
 
  # ビルドディレクトリを作成
  # ビルドディレクトリを作成
  mkdir /<Qtのソースコードがあるディレクトリ>/../build && cd /<Qtのソースコードがあるディレクトリ>/../build
  mkdir /<Qtのソースコードがあるディレクトリ>/../build && cd /<Qtのソースコードがあるディレクトリ>/../build
 
  export CROSS_PI_PATH=/<GCC ARMツールチェインのインストールディレクトリ>
  export CROSS_PI_PATH=/<GCC ARMツールチェインのインストールディレクトリ>
 
  # Raspberry Pi OS 32ビットの場合
  # Raspberry Pi OS 32ビットの場合
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/arm-linux-gnueabihf-
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/arm-linux-gnueabihf-
 
  # Raspberry Pi OS 64ビットの場合
  # Raspberry Pi OS 64ビットの場合
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/aarch64-linux-gnu-
  export CROSS_COMPILE=$CROSS_PI_PATH/bin/aarch64-linux-gnu-
 
  # システムルードディレクトリの指定
  # システムルードディレクトリの指定
  export SYSTEMROOT=<Raspberry Pi OSのシステムルートディレクトリ>
  export SYSTEMROOT=<Raspberry Pi OSのシステムルートディレクトリ>
  export PKG_CONFIG_SYSROOT_DIR=$SYSTEMROOT
  export PKG_CONFIG_SYSROOT_DIR=$SYSTEMROOT
 
  export PKG_CONFIG_PATH=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig
  export PKG_CONFIG_PATH=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig
  export PKG_CONFIG_LIBDIR=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/share/pkgconfig
  export PKG_CONFIG_LIBDIR=$PKG_CONFIG_SYSROOT_DIR/usr/lib/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig:$PKG_CONFIG_SYSROOT_DIR/usr/share/pkgconfig
 
  cmake -G Ninja \
  cmake -G Ninja \
  <Qt 6のソースコードがあるディレクトリ>      \
  <Qt 6のソースコードがあるディレクトリ>      \
767行目: 767行目:
|+ 必須およびオプションのライブラリ
|+ 必須およびオプションのライブラリ
|-
|-
! 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>これらのライブラリが必要である。
855行目: 855行目:
  または
  または
  make -j 4 NINJAJOBS=-j4
  make -j 4 NINJAJOBS=-j4
 
  make install
  make install
<br>
<br>
864行目: 864行目:
|+ ビルド時の問題点と解決策
|+ ビルド時の問題点と解決策
|-
|-
! 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
892行目: 892行目:
  # .profileファイルに設定する場合
  # .profileファイルに設定する場合
  export LD_LIBRARY_PATH="/home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib:$LD_LIBRARY_PATH"
  export LD_LIBRARY_PATH="/home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib:$LD_LIBRARY_PATH"
 
  # /etc/ld.so.conf.dディレクトリに配置する場合
  # /etc/ld.so.conf.dディレクトリに配置する場合
  echo /home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib | sudo tee /etc/ld.so.conf.d/00-Qt_6_x_x.conf
  echo /home/<Raspberry Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib | sudo tee /etc/ld.so.conf.d/00-Qt_6_x_x.conf
966行目: 966行目:
  <syntaxhighlight lang="xml">
  <syntaxhighlight lang="xml">
  # .pro.userファイル
  # .pro.userファイル
 
  <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
  <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
   <!-- ...略 -->
   <!-- ...略 -->
1,008行目: 1,008行目:
  mkdir -p /<Raspberry Piのシステムルートディレクトリ>/home/mobian/InstallSoftware
  mkdir -p /<Raspberry Piのシステムルートディレクトリ>/home/mobian/InstallSoftware
  ln -s /<Qtライブラリのインストールディレクトリ> /<Raspberry Piのシステムルートディレクトリ>/home/mobian/InstallSoftware
  ln -s /<Qtライブラリのインストールディレクトリ> /<Raspberry Piのシステムルートディレクトリ>/home/mobian/InstallSoftware
 
  # シンボリックリンク名の変更
  # シンボリックリンク名の変更
  mv /<Raspberry Piのシステムルートディレクトリ>/home/mobian/InstallSoftware/<Qtライブラリのインストールディレクトリ> \
  mv /<Raspberry Piのシステムルートディレクトリ>/home/mobian/InstallSoftware/<Qtライブラリのインストールディレクトリ> \
1,017行目: 1,017行目:
  # x86 / x64のKitを使用する場合は、Raspberry Piのシステムルートディレクトリを参照しない
  # x86 / x64のKitを使用する場合は、Raspberry Piのシステムルートディレクトリを参照しない
  [ -n $(grep -i RaspberryPi %{ActiveProject:Kit:Name}) ] && set sysroot /<Raspberry Piのシステムルートディレクトリ>
  [ -n $(grep -i RaspberryPi %{ActiveProject:Kit:Name}) ] && set sysroot /<Raspberry Piのシステムルートディレクトリ>
 
  # または
  # または
 
  set sysroot /<Raspberry Piのシステムルートディレクトリ>
  set sysroot /<Raspberry Piのシステムルートディレクトリ>
<br>
<br>
1,031行目: 1,031行目:
  # または
  # または
  git clone https://code.qt.io/cgit/qt/<Qtライブラリ名>.git -b <Qtのバージョン>
  git clone https://code.qt.io/cgit/qt/<Qtライブラリ名>.git -b <Qtのバージョン>
 
  cd <Qtライブラリ名>
  cd <Qtライブラリ名>
 
  ~/Program/Qt_Embedded/Qt5/bin/qmake
  ~/Program/Qt_Embedded/Qt5/bin/qmake
  make -j $(nproc)
  make -j $(nproc)
1,049行目: 1,049行目:
  # エラー出力 1
  # エラー出力 1
  error: 'uint32_t' is not a member of 'std'; did you mean 'wint_t'?
  error: 'uint32_t' is not a member of 'std'; did you mean 'wint_t'?
 
  # エラー出力 2
  # エラー出力 2
  error: 'FeatureType' does not name a type; did you mean 'ToFeatureType'?
  error: 'FeatureType' does not name a type; did you mean 'ToFeatureType'?
1,061行目: 1,061行目:
  // 変更後
  // 変更後
  #include <cstdint>
  #include <cstdint>
 
 
  // qt-everywhere-src-6.x.x/qtquick3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cppファイル
  // qt-everywhere-src-6.x.x/qtquick3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cppファイル
  // 53行目
  // 53行目
1,069行目: 1,069行目:
  // 変更後
  // 変更後
  #include <cstdint>
  #include <cstdint>
 
 
  // qt-everywhere-src-6.x.x/qtquick3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXTokenizer.cppファイル
  // qt-everywhere-src-6.x.x/qtquick3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXTokenizer.cppファイル
  // 58行目
  // 58行目
1,093行目: 1,093行目:
   Cannot add target-level dependencies to non-existent target
   Cannot add target-level dependencies to non-existent target
   "qhelpgenerator".
   "qhelpgenerator".
 
  The add_dependencies works for top-level logical targets created by the
  The add_dependencies works for top-level logical targets created by the
  add_executable, add_library, or add_custom_target commands.  If you want to
  add_executable, add_library, or add_custom_target commands.  If you want to
1,102行目: 1,102行目:
  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})
  add_dependencies(qhelpgenerator ${needed_plugins})
 
  # 編集後
  # 編集後
  #add_dependencies(qhelpgenerator ${needed_plugins})
  #add_dependencies(qhelpgenerator ${needed_plugins})
1,118行目: 1,118行目:
この時、以下に示す<code>cmake</code>コマンドのオプションを付加する。<br>
この時、以下に示す<code>cmake</code>コマンドのオプションを付加する。<br>
  cmake -G Ninja \
  cmake -G Ninja \
 
  # ...略
  # ...略
 
  -DBUILD_qtgrpc
  -DBUILD_qtgrpc
 
  # ...略
  # ...略
<br>
<br>
1,128行目: 1,128行目:
Qt 6をビルドする場合、以下に示すようなエラーが出力される場合がある。<br>
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'?
 
  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>
<br>
1,308行目: 1,308行目:
  <syntaxhighlight lang="xml">
  <syntaxhighlight lang="xml">
  <!-- .idea/runConfigurations/<プロジェクト名>.xml -->
  <!-- .idea/runConfigurations/<プロジェクト名>.xml -->
 
  <component name="ProjectRunConfigurationManager">
  <component name="ProjectRunConfigurationManager">
   <configuration ...略>
   <configuration ...略>
1,323行目: 1,323行目:
       <env name="PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" />
       <env name="PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" />
     </envs>
     </envs>
 
     <!-- ...略 -->
     <!-- ...略 -->
 
   </configuration>
   </configuration>
  </component>
  </component>
1,343行目: 1,343行目:
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  # ~/.gdbinitファイル  または  ~/.lldbinitファイル
  # ~/.gdbinitファイル  または  ~/.lldbinitファイル
 
  set auto-load safe-path /
  set auto-load safe-path /
 
  # または
  # または
 
  set auto-load local-gdbinit on
  set auto-load local-gdbinit on
  add-auto-load-safe-path /
  add-auto-load-safe-path /
1,358行目: 1,358行目:
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  # /<プロジェクトディレクトリ>/.gdbinitファイル  または  /<プロジェクトディレクトリ>/.lldbinitファイル
  # /<プロジェクトディレクトリ>/.gdbinitファイル  または  /<プロジェクトディレクトリ>/.lldbinitファイル
 
  set sysroot <Raspberry Piのシステムルートディレクトリ>
  set sysroot <Raspberry Piのシステムルートディレクトリ>
  </syntaxhighlight>
  </syntaxhighlight>