📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の31版が非表示) | |||
| 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= | | 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= | | 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= | | 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 | # QtWebEngineをインストールする場合 | ||
libvpx-devel | 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をインストールする場合 (デフォルトパッケージ) | ||
ffmpeg-4-libavresample-devel ffmpeg-4-libavutil-devel ffmpeg-4-libpostproc-devel ffmpeg-4-libswresample-devel | ffmpeg-4-libavcodec-devel ffmpeg-4-libavdevice-devel ffmpeg-4-libavfilter-devel ffmpeg-4-libavformat-devel \ | ||
ffmpeg-4-libswscale-devel ffmpeg-4-private-devel | 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パッケージ) | ||
ffmpeg-6-libavresample-devel ffmpeg-6-libavutil-devel ffmpeg-6-libpostproc-devel ffmpeg-6-libswresample-devel | ffmpeg-6-libavcodec-devel ffmpeg-6-libavdevice-devel ffmpeg-6-libavfilter-devel ffmpeg-6-libavformat-devel \ | ||
ffmpeg-6-libswscale-devel ffmpeg-6-private-devel | 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:# | ! style="background-color:#66ccff;" | Raspberry Piの種類 | ||
! style="background-color:# | ! 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 | libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 \ | ||
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 | libfontconfig1-dev libdbus-1-dev libjpeg-dev libasound2-dev libudev-dev \ | ||
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 \ | ||
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 | libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev \ | ||
libxcb-xinerama0 libxcb-xinerama0-dev | 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 | 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 | | マルチメディア || 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 | | 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 | 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アドレス>:/lib \ | ||
rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib | <Raspberry Piのシステムルートディレクトリ> | ||
rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/share/pkgconfig | |||
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 | ./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> \ | ||
| 588行目: | 766行目: | ||
これは、Qtライブラリを使用するプログラムをビルドする場合は、rccファイルが必要となるためである。<br> | これは、Qtライブラリを使用するプログラムをビルドする場合は、rccファイルが必要となるためである。<br> | ||
cp /<Qtのソースコードがあるディレクトリ>/qtbase/bin/rcc /<ホストPCで使用するQtライブラリを配置するディレクトリ>/bin | cp /<Qtのソースコードがあるディレクトリ>/qtbase/bin/rcc /<ホストPCで使用するQtライブラリを配置するディレクトリ>/bin | ||
<br><br> | |||
== QtWebEngineのビルドおよびインストール == | |||
上記のセクションでは、QtWebEngineモジュールを無効にしている。<br> | |||
これは、QtWebEngineのビルドには多くの時間とディスクスペースが必要なためである。<br> | |||
<br> | |||
勿論、QtWebEngineとQtを同時にビルドすることも可能であるが、ビルドに失敗する場合はビルド全体が失敗したことになるため、<br> | |||
まず、ベースとなるQt 5を個別にビルドした後、QtWebEngineを個別にビルドすることを推奨する。<br> | |||
<br> | |||
==== 依存関係のライブラリのインストール ==== | |||
<center> | |||
{| class="wikitable" style="background-color:#fefefe;" | |||
|+ 必須およびオプションのライブラリ | |||
|- | |||
! style="background-color:#00ffff;" | | |||
! style="background-color:#00ffff;" | ライブラリ名 | |||
! style="background-color:#00ffff;" | 備考 | |||
|- | |||
| 必須 || flex bison gperf libre2-dev libnss3-dev || | |||
|- | |||
| X11対応に必要 || libdrm-dev libxdamage-dev || XCB / X11を使用する場合、<br>これらのライブラリが必要である。 | |||
|- | |||
| オプション || libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev<br>libevent-dev libprotobuf-dev protobuf-compiler libwebp-dev libpoppler-cpp-dev || 追加サポートとして便利である。 | |||
|- | |||
| (オプション)<br>システム構築ツール || ninja-build re2c || ninjaビルドツールを使用することで、<br>ビルドを高速化できることがある。 | |||
|- | |||
| その他 || libopus-dev libvpx-dev || OpusとVPXメディアのサポートが追加される。 | |||
|} | |||
</center> | |||
<br> | |||
==== QtWebEngineのダウンロード ==== | |||
Qtの公式Webサイトから、QtWebEngineをダウンロードする。<br> | |||
https://download.qt.io/official_releases/qt/x.x/x.x.x/submodules/qtwebengine-everywhere-src-x.x.x.tar.xz<br> | |||
<br> | |||
==== QtWebEngineのビルド設定 ==== | |||
ダウンロードしたQtWebEngineのビルド設定を編集する。<br> | |||
<br> | |||
QtWebEngineでのジャンボビルドを無効化する。<br> | |||
標準のジャンボビルドシステムでは、コンパイル時に不明のエラーが出力されるため、無効にする。<br> | |||
sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' /<QtWebEngineのソースコードがあるディレクトリ>/src/buildtools/config/common.pri | |||
<br> | |||
==== QtWebEngineのビルドとインストール ==== | |||
次に、QtWebEngineのConfigureスクリプトを実行する。<br> | |||
/opt/Qt/5.15.2/bin/qmake /<QtWebEngineのソースコードがあるディレクトリ> -- -no-webengine-geolocation | |||
<br> | |||
正常に終了する時、以下のようなサマリが表示される。<br> | |||
Qt WebEngine: | |||
Embedded build ......................... no | |||
Full debug information ................. no | |||
Pepper Plugins ......................... yes | |||
Printing and PDF ....................... yes | |||
Proprietary Codecs ..................... no | |||
Spellchecker ........................... yes | |||
Native Spellchecker .................... no | |||
WebRTC ................................. yes | |||
Use System Ninja ....................... yes | |||
Geolocation ............................ no | |||
WebChannel support ..................... yes | |||
Use v8 snapshot ........................ yes | |||
Kerberos Authentication ................ no | |||
Support qpa-xcb ........................ yes | |||
Use ALSA ............................... yes | |||
Use PulseAudio ......................... no | |||
Optional system libraries used: | |||
re2 .................................. yes | |||
icu .................................. no | |||
libwebp, libwebpmux and libwebpdemux . no | |||
opus ................................. no | |||
ffmpeg ............................... no | |||
libvpx ............................... no | |||
snappy ............................... no | |||
glib ................................. yes | |||
zlib ................................. yes | |||
minizip .............................. yes | |||
libevent ............................. yes | |||
jsoncpp .............................. yes | |||
protobuf ............................. yes | |||
libxml2 and libxslt .................. yes | |||
lcms2 ................................ yes | |||
png .................................. yes | |||
JPEG ................................. yes | |||
harfbuzz ............................. no | |||
freetype ............................. yes | |||
Required system libraries: | |||
fontconfig ........................... yes | |||
dbus ................................. yes | |||
nss .................................. yes | |||
khr .................................. yes | |||
glibc ................................ yes | |||
Required system libraries for qpa-xcb: | |||
x11 .................................. yes | |||
libdrm ............................... yes | |||
xcomposite ........................... yes | |||
xcursor .............................. yes | |||
xi ................................... yes | |||
xtst ................................. yes | |||
<br> | |||
最後に、QtWebEngineをビルドする。<br> | |||
もし、ビルドするPCのメモリが8[GB]以下の場合、NINJAJOBSを4以下にして、Ninjaの並列ビルドの量を制限する必要がある。<br> | |||
make -j $(nproc) | |||
または | |||
make -j 4 NINJAJOBS=-j4 | |||
make install | |||
<br> | |||
==== QtWebEngineのビルド時に発生する問題 ==== | |||
下表は、QtWebEngineで見つかった問題とビルドの問題を集めたものである。<br> | |||
<center> | |||
{| class="wikitable" style="background-color:#fefefe;" | |||
|+ ビルド時の問題点と解決策 | |||
|- | |||
! style="background-color:#00ffff;" | QtWebEngineのバージョン | |||
! 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 || fatal error: xcb/dri3.h: No such file or directory || 以下のライブラリをインストールする。<br><code>sudo apt install libxcb-dri3-dev</code> | |||
|- | |||
| 5.15.2 || Broadcom EGLを使用するQtのビルドに失敗する。<br><br>qtwebengine-everywhere-src-x.x.x/src/3rdparty/chromium/ui/gl/gl_bindings_autogen_egl.h:201:5:<br>error: ‘EGLDeviceEXT’ has not been declared || Broadcom EGLの代わりに、<br>VC4 / KMSを使用してビルドする。 | |||
|} | |||
</center> | |||
<br><br> | <br><br> | ||
| 792行目: | 1,092行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
==== | ==== ビルドエラー : 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? | ||
| 813行目: | 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に関するエラー ==== | |||
ビルド時において、以下に示すようなエラーが出力される場合がある。<br> | ビルド時において、以下に示すようなエラーが出力される場合がある。<br> | ||
error: 'google::protobuf::FileDescriptor::Syntax google::protobuf::FileDescriptor::syntax() const' | error: 'google::protobuf::FileDescriptor::Syntax google::protobuf::FileDescriptor::syntax() const' | ||
| 837行目: | 1,149行目: | ||
# ...略 | # ...略 | ||
<br><br> | <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> | <br> | ||
このエラーは、ターゲットデバイスにインストールされているWaylandライブラリのバージョンが古いため発生する。<br> | |||
例えば、Qt 6.5をビルドする場合は、Wayland 1.19以降が必要となる。<br> | |||
<br> | <br> | ||
そのため、ターゲットデバイスのOSをアップグレード、あるいは、Waylandライブラリをソースコードからインストールする必要がある。<br> | |||
例えば、Raspberry Pi OS bullseyeを使用している場合はBookwormにアップグレードする。<br> | |||
<br><br> | |||
== Qt Creatorに関するエラー == | |||
==== Qt Creator 14のリモートデバッグに関するエラー ==== | |||
Qt Creator 14 および GDBを使用してリモートデバッグを実行する時、以下に示すようなメッセージが表示された後、デバッガがハングする場合がある。<br> | |||
< | |||
<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> | <br> | ||
Listening on port 10000 | |||
<br> | <br> | ||
この時、Qt Creator 14は使用せずに、Qt Creator 13以前を使用する必要がある。<br> | |||
<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> | <br> | ||
この警告は、Raspberry Pi側のロケール設定がUTF-8ではないため、Qtが自動的にロケールを切り替えていることを示している。<br> | |||
<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]] | ||