12,985
回編集
編集の要約なし |
|||
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> |