📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の9版が非表示) | |||
| 29行目: | 29行目: | ||
! 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> | ||
| 39行目: | 39行目: | ||
Linux PCにおいて、以下の依存関係のライブラリをインストールする。<br> | Linux PCにおいて、以下の依存関係のライブラリをインストールする。<br> | ||
(Texinfoは、GNU公式Webサイトにアクセスして、ソースコードからインストールすることを推奨する)<br> | (Texinfoは、GNU公式Webサイトにアクセスして、ソースコードからインストールすることを推奨する)<br> | ||
# SUSE | |||
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 | # 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> | ||
| 252行目: | 256行目: | ||
<br> | <br> | ||
* 上表のライブラリを全てインストールする場合 | * 上表のライブラリを全てインストールする場合 | ||
sudo pacman -S --needed bluez bluez-libs openjpeg2 libjpeg-turbo libpng libtiff libmng \ | |||
gstreamer gstreamermm gst-plugins-base gst-plugins-base-libs gst-plugins-good \ | |||
gst-plugins-bad gst-plugins-bad-libs gst-plugins-ugly gst-libav gst-plugin-wpe \ | |||
gst-plugin-pipewire gst-plugin-gtk qt-gstreamer gst-plugin-qmlgl gst-plugin-opencv \ | |||
alsa-lib pulseaudio-alsa openal \ | |||
flite libserialport sensorfw \ | |||
unixodbc sqlite libcups \ | |||
xorg-xwayland flex bison gperf readline nss libdrm libxml2 libxml++ libxslt minizip jsoncpp \ | |||
lcms2 libevent protobuf protobuf-c opus libvpx at-spi2-core at-spi2-atk lksctp-tools | |||
<br> | <br> | ||
次のセクションにおいて、rsyncコマンドを使用してLinux PCとPinePhoneのファイルを同期する。<br> | 次のセクションにおいて、rsyncコマンドを使用してLinux PCとPinePhoneのファイルを同期する。<br> | ||
| 321行目: | 330行目: | ||
vi <Qtのソースコードがあるディレクトリ>/qtbase/mkspecs/devices/linux-pinephone-g++/qmake.conf | vi <Qtのソースコードがあるディレクトリ>/qtbase/mkspecs/devices/linux-pinephone-g++/qmake.conf | ||
<br> | <br> | ||
<syntaxhighlight lang="make"> | |||
# qmake.confファイル | # qmake.confファイル | ||
| 373行目: | 383行目: | ||
load(qt_config) | load(qt_config) | ||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
| 619行目: | 630行目: | ||
-DCMAKE_STAGING_PREFIX=<PinePhone向けQt 6ライブラリを配置するディレクトリ> \ | -DCMAKE_STAGING_PREFIX=<PinePhone向けQt 6ライブラリを配置するディレクトリ> \ | ||
-DCMAKE_INSTALL_PREFIX=<Qtソフトウェアを配置するディレクトリ> \ | -DCMAKE_INSTALL_PREFIX=<Qtソフトウェアを配置するディレクトリ> \ | ||
-DCMAKE_PREFIX_PATH= | -DCMAKE_PREFIX_PATH=$SYSROOT/usr/lib/aarch64-linux-gnu </syntaxhighlight> | ||
<br> | <br> | ||
Qt 6をクロスビルドおよびインストールする。<br> | Qt 6をクロスビルドおよびインストールする。<br> | ||
| 672行目: | 682行目: | ||
この時、<code>cmake</code>コマンドの実行時において、<code>-DFEATURE_xkbcommon=OFF</code>オプションを付加する。<br> | この時、<code>cmake</code>コマンドの実行時において、<code>-DFEATURE_xkbcommon=OFF</code>オプションを付加する。<br> | ||
<br> | <br> | ||
==== ビルドエラー関連 : Qt Toolのqhelpgeneratorに関するエラー | ==== ビルドエラー関連 : Qt Toolのqhelpgeneratorに関するエラー ==== | ||
<code>cmake</code>コマンドの実行時において、以下に示すようなエラーが出力される場合がある。<br> | <code>cmake</code>コマンドの実行時において、以下に示すようなエラーが出力される場合がある。<br> | ||
-- Configuring submodule 'qttools' | -- Configuring submodule 'qttools' | ||
| 685行目: | 695行目: | ||
<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に関するエラー 2 ==== | ==== ビルドエラー関連 : Qt Toolのqhelpgeneratorに関するエラー 2 ==== | ||
ビルド時において、以下に示すようなエラーが出力される場合がある。<br> | ビルド時において、以下に示すようなエラーが出力される場合がある。<br> | ||
| 1,080行目: | 1,102行目: | ||
<u>Bluetoothモジュールを動作させるにはD-Bus機能が必要である。</u><br> | <u>Bluetoothモジュールを動作させるにはD-Bus機能が必要である。</u><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> | |||
==== libstdc++のエラー ==== | ==== libstdc++のエラー ==== | ||
デバッグ時において、以下に示すようなエラーが出力される場合はある。<br> | デバッグ時において、以下に示すようなエラーが出力される場合はある。<br> | ||
| 1,119行目: | 1,157行目: | ||
<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]][[カテゴリ:PinePhone]][[カテゴリ:Qt]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:PinePhone]][[カテゴリ:Qt]] | ||