(同じ利用者による、間の11版が非表示)
9行目: 9行目:
<br>
<br>
<u>このページでは、Raspberry Pi OS Bullseye / Bookwormをインストールしていることを想定している。</u><br>
<u>このページでは、Raspberry Pi OS Bullseye / Bookwormをインストールしていることを想定している。</u><br>
<br>
<u>※注意</u><br>
<u>Raspberry Pi OS Bullseye以降は、画面を描画するためのVCドライバは存在しない。</u><br>
<u>もし、VCドライバが必要な場合は、Raspbian OS Busterを使用すること。(非推奨)</u><br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! colspan="3" style="background-color:#44CC99;" | 参考書
|- style="text-align: center;"
| <center><html><a href="https://www.amazon.co.jp/Mastering-Qt-stunning-cross-platform-applications-ebook/dp/B07DH9YK9Q?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-1&linkCode=ll1&tag=presire2-22&linkId=2118a0260e6e51aa7f7440827dee4266&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/71ZdxoixPvL._SL1500_.jpg" ></a></html><br>[https://www.amazon.co.jp/Mastering-Qt-stunning-cross-platform-applications-ebook/dp/B07DH9YK9Q?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-1&linkCode=ll1&tag=presire2-22&linkId=2118a0260e6e51aa7f7440827dee4266&language=ja_JP&ref_=as_li_ss_tl Mastering Qt 5<br>C++, Qt Widgets, QMLを使用したクロスプラットフォームアプリケーションの作成]</center>
| <center><html><a href="https://www.amazon.co.jp/Hands-Mobile-Embedded-Development-Raspberry-ebook/dp/B07RH6QM95?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-6&linkCode=ll1&tag=presire2-22&linkId=fabbe4470bf7cb690cadc2cf00e7af96&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/91V16o+L03L._SL1500_.jpg" ></a></html><br>[https://www.amazon.co.jp/Hands-Mobile-Embedded-Development-Raspberry-ebook/dp/B07RH6QM95?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-6&linkCode=ll1&tag=presire2-22&linkId=fabbe4470bf7cb690cadc2cf00e7af96&language=ja_JP&ref_=as_li_ss_tl Hands-On Mobile and Embedded Development with Qt 5<br>C++/QtでAndroid, iOS, Raspberry Pi用のアプリケーションを作成]</center>
| <center><html><a href="https://www.amazon.co.jp/Qt5-GUI-Programming-Cookbook-cross-platform/dp/1789803829?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-14&linkCode=ll1&tag=presire2-22&linkId=981d01e080c07e69b683bbd3eee91fd9&language=ja_JP&ref_=as_li_ss_tl" target="_blank"><img style="width: 250px; height: auto;" src="https://m.media-amazon.com/images/I/717s6aji8ZL._SL1360_.jpg" ></a></html><br>[https://www.amazon.co.jp/Qt5-GUI-Programming-Cookbook-cross-platform/dp/1789803829?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=29KSQHSJC9DB3&keywords=Qt+5&qid=1667806384&qu=eyJxc2MiOiIwLjAwIiwicXNhIjoiMC4wMCIsInFzcCI6IjAuMDAifQ%3D%3D&sprefix=qt+5%2Caps%2C196&sr=8-14&linkCode=ll1&tag=presire2-22&linkId=981d01e080c07e69b683bbd3eee91fd9&language=ja_JP&ref_=as_li_ss_tl Qt5 C++ GUI Programming Cookbook<br>Qt5でクロスプラットフォームのアプリケーションの作成]</center>
|}
</center>
<br><br>
<br><br>


112行目: 127行目:
* 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 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 \
                  libssl-dev libssl1.0-dev libnss3-dev                                                              \  
                  libxcb-xinerama0 libxcb-xinerama0-dev gdbserver
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev           \
                  libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev gdbserver
                   python2 libpython2.7          # QtQuickを使用する場合
                   python2 libpython2.7          # QtQuickを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
124行目: 140行目:
   
   
  ## 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 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 libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev           \
                   libxcb-xinerama0 libxcb-xinerama0-dev gdbserver \
                  libssl-dev libssl1.0-dev libnss3-dev                                                               \
                   libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev                                                 \
                   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を使用する場合
142行目: 159行目:
* 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 libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev             \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev                             \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev       \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev           \
                   libxcb-xinerama0 libxcb-xinerama0-dev gdbserver
                  libssl-dev libssl1.0-dev libnss3-dev gdbserver                                                    \
                   libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libgtk-3-dev                  # QtWidget向けにGTKネイティブテーマを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
                   libraspberrypi-dev            # Raspberry Pi 3B / 3B+の場合、かつ、Raspberry Pi OS 32ビットを使用する場合
153行目: 171行目:
   
   
  ## 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 libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev             \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libinput-bin libinput-dev libts0 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \
                   libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev                             \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev \
                   libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libselinux1-dev libsepol-dev libwacom-dev       \
                   libfontconfig1-dev libdbus-1-dev libnss3-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \
                   libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev           \
                   libxcb-xinerama0 libxcb-xinerama0-dev gdbserver \
                  libssl-dev libssl1.0-dev libnss3-dev gdbserver                                                    \
                   libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev                                                 \
                   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ネイティブテーマを使用する場合
277行目: 296行目:
*: <code>git clone https://github.com/qt/qtbase -b <Qtのバージョン></code>
*: <code>git clone https://github.com/qt/qtbase -b <Qtのバージョン></code>
*: <br>
*: <br>
* Qt Everywhere Opensourceをビルドする場合
* Qt Everywhere Opensourceをビルドする場合<br>https://download.qt.io/archive/qt/
*: <code>wget https://download.qt.io/official_releases/qt/x.x/x.x.x/single/qt-everywhere-src-x.x.x.tar.xz</code>
*: <code>wget https://download.qt.io/archive/qt/x.x/x.x.x/single/qt-everywhere-src-x.x.x.tar.xz</code>
*: <code>tar xf qt-everywhere-opensource-src-x.x.x.tar.gz</code>
*: <code>tar xf qt-everywhere-opensource-src-x.x.x.tar.gz</code>
*: <code>cd qt-everywhere-opensource-src-x.x.x</code>
*: <code>cd qt-everywhere-opensource-src-x.x.x</code>
668行目: 687行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== GCC 11以降を使用する場合 ====
GCC 11以降のツールチェーンを使用する場合、Qt 5.15のビルド時において、以下に示すエラーが発生する場合がある。<br>
error: 'numeric_limits' is not a member of 'std'  static_cast<quint16>(numbers.size()) : std::numeric_limits<quint16>::max();
error: expected primary-expression before '>' token  static_cast<quint16>(numbers.size()) : std::numeric_limits<quint16>::max();
error: '::max' has not been declared; did you mean 'std::max'?  static_cast<quint16>(numbers.size()) : std::numeric_limits<quint16>::max();
<br>
これは、std::limitsが削除されて、limits.hファイルに移行されたからである。<br>
もし、GCC 11以降を使用してQt 5.15をビルドする場合は、qt-everywhere-src-5.15.x/qtbase/src/corelib/global/qglobal.hファイルを、以下に示すように編集する。<br>
vi qt-everywhere-src-5.15.x/qtbase/src/corelib/global/qglobal.h
<br>
<syntaxhighlight lang="c++">
// qt-everywhere-src-5.15.x/qtbase/src/corelib/global/qglobal.hファイル
// 45〜48行目あたり
// 編集前
#ifdef __cplusplus
#  include <type_traits>
#  include <cstddef>
#  include <utility>
#endif
// 編集後
#ifdef __cplusplus
#  include <type_traits>
#  include <cstddef>
#  include <utility>
#include <limits>
#endif
</syntaxhighlight>
<br>
==== デバッグエラー : No route to host ====
==== デバッグエラー : No route to host ====
デバッグ実行開始前に、以下に示すようなエラーが表示される場合がある。<br>
デバッグ実行開始前に、以下に示すようなエラーが表示される場合がある。<br>
875行目: 927行目:
<br><br>
<br><br>


== CLion / Qtとの連携 ==
== CLion / Qt 5との連携 ==
==== Qt 5向けCMakeツールチェーンファイルの作成 ====
==== CMakeツールチェーンファイルの作成 ====
Raspberry Pi向けのQt 5ライブラリのインストールディレクトリ内のlib/cmake/Qt5ディレクトリにCMakeツールチェーンファイルの作成する。<br>
任意のディレクトリにCMakeツールチェーンファイルの作成する。<br>
vi /<任意のディレクトリ>/ToolChain_for_Raspberry_Pi.cmake
<br>
<syntaxhighlight lang="cmake">
# Raspberry Pi OS 32ビット向け
# 64ビットを使用する場合は、"arm-linux-gnueabihf"の部分を"aarch64-linux-gnu"へ変更すること
# /<任意のディレクトリ>/ToolChain_for_Raspberry_Pi.cmakeファイル
cmake_minimum_required(VERSION 3.18)
include_guard(GLOBAL)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(TARGET_SYSROOT <Raspberry Piのシステムルートディレクトリ>)
set(CMAKE_SYSROOT ${TARGET_SYSROOT})
set(ENV{PKG_CONFIG_PATH}  $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    /<GCCツールチェーンのインストールディレクトリ>/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER  /<GCCツールチェーンのインストールディレクトリ>/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の場合
set(QT_COMPILER_FLAGS "march=armv8-a -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8")
# Raspberry Pi 4Bの場合
set(QT_COMPILER_FLAGS "march=armv8-a -mtune=cortex-a72 -mfpu=crypto-neon-fp-armv8")
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>
==== Qt 5向けCMakeツールチェーン設定ファイルの作成 ====
Raspberry Pi向けのQt 5ライブラリのインストールディレクトリ内のlib/cmake/Qt5ディレクトリにCMakeツールチェーン設定ファイルの作成する。<br>
  vi /<Qt 5ライブラリのインストールディレクトリ>lib/cmake/Qt5/qt.toolchain.cmake
  vi /<Qt 5ライブラリのインストールディレクトリ>lib/cmake/Qt5/qt.toolchain.cmake
<br>
<br>
900行目: 1,026行目:
  endif()
  endif()
   
   
  set(__qt_initially_configured_toolchain_file "<Raspberry Pi向けCMakeツールチェーンファイルのパス>")
  set(__qt_initially_configured_toolchain_file "<上記で作成したRaspberry Pi向けCMakeツールチェーンファイルのパス>")
  set(__qt_chainload_toolchain_file "${__qt_initially_configured_toolchain_file}")
  set(__qt_chainload_toolchain_file "${__qt_initially_configured_toolchain_file}")
   
   
1,018行目: 1,144行目:
**: 任意の名前を入力する。
**: 任意の名前を入力する。
** [CMake:]
** [CMake:]
**: PinePhone向けQtライブラリのビルドに使用したCMakeファイルのパスを入力する。
**: Raspberry Pi向けQtライブラリのビルドに使用したCMakeファイルのパスを入力する。
** [ビルドツール:]
** [ビルドツール:]
**: PinePhone向けQtライブラリのビルドに使用したNinjaファイルのパスを入力する。
**: Raspberry Pi向けQtライブラリのビルドに使用したNinjaファイルのパスを入力する。
** [C コンパイラー:]
** [C コンパイラー:]
**: PinePhone向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
**: Raspberry Pi向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
** [C++ コンパイラー:]
** [C++ コンパイラー:]
**: PinePhone向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
**: Raspberry Pi向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
** [デバッガー:]
** [デバッガー:]
1,050行目: 1,176行目:
** [環境:]<br>[環境:]のテキストアイコンを選択して、[環境設定]画面を開く。<br>画面右上の[+]ボタンを押下して、各環境変数を設定する。
** [環境:]<br>[環境:]のテキストアイコンを選択して、[環境設定]画面を開く。<br>画面右上の[+]ボタンを押下して、各環境変数を設定する。
*** CMAKE_C_COMPILER
*** CMAKE_C_COMPILER
***: PinePhone向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
***: Raspberry Pi向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
*** CMAKE_CXX_COMPILER
*** CMAKE_CXX_COMPILER
***: PinePhone向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
***: Raspberry Pi向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
*** CMAKE_PREFIX_PATH
*** CMAKE_PREFIX_PATH
***: PinePhone向けQtライブラリのインストールディレクトリのパスを入力する。
***: Raspberry Pi向けQtライブラリのインストールディレクトリのパスを入力する。
***: 例: <PinePhone向けQtライブラリのインストールディレクトリ>
***: 例: <Raspberry Pi向けQtライブラリのインストールディレクトリ>
*** CMAKE_TOOLCHAIN_FILE
*** CMAKE_TOOLCHAIN_FILE
***: PinePhone向けQtライブラリのインストールディレクトリにあるビルド向けツールチェーンファイルのパスを入力する。
***: Raspberry Pi向けQtライブラリのインストールディレクトリにあるビルド向けツールチェーンファイルのパスを入力する。
***: 例: /<PinePhone向けQtライブラリのインストールディレクトリ>/lib/cmake/Qt6/qt.toolchain.cmake
***: 例: /<Raspberry Pi向けQtライブラリのインストールディレクトリ>/lib/cmake/Qt5/qt.toolchain.cmake
*** QT_QMAKE_EXECUTABLE
*** QT_QMAKE_EXECUTABLE
***: PinePhone向けQtライブラリのインストールディレクトリにあるqmakeファイルのパスを入力する。
***: Raspberry Pi向けQtライブラリのインストールディレクトリにあるqmakeファイルのパスを入力する。
***: 例: /<PinePhone向けQtライブラリのインストールディレクトリ>/bin/qmake-host
***: 例: /<Raspberry Pi向けQtライブラリのインストールディレクトリ>/bin/qmake-host
<br>
<br>
[設定]画面の右ペイン下部にある[適用]ボタンを押下する。<br>
[設定]画面の右ペイン下部にある[適用]ボタンを押下する。<br>
1,074行目: 1,200行目:
* SSH構成の設定項目
* SSH構成の設定項目
** [ホスト:]
** [ホスト:]
**: PinePhoneのIPアドレスまたはホスト名を入力する。
**: Raspberry PiのIPアドレスまたはホスト名を入力する。
** [ユーザー名:]
** [ユーザー名:]
**: PinePhoneのユーザ名を入力する。
**: Raspberry Piのユーザ名を入力する。
** [認証タイプ:]プルダウン
** [認証タイプ:]プルダウン
**: [パスワード]または[キーペア]を選択する。
**: [パスワード]または[キーペア]を選択する。
1,086行目: 1,212行目:
**: 任意
**: 任意
<br>
<br>
[接続テスト]ボタンを押下して、PinePhoneにSSH接続する。<br>
[接続テスト]ボタンを押下して、Raspberry PiにSSH接続する。<br>
<br>
<br>
[設定]画面の右ペイン右下にある[適用]ボタンを押下する。<br>
[設定]画面の右ペイン右下にある[適用]ボタンを押下する。<br>
1,110行目: 1,236行目:
*: 任意
*: 任意
* [アップロードパス:]
* [アップロードパス:]
*: 実行可能バイナリが配置されるPinePhone上のディレクトリを入力する。
*: 実行可能バイナリが配置されるRaspberry Pi上のディレクトリを入力する。
*: 例: /home/<PinePhoneのユーザ名>/CLion/Sample1/debug
*: 例: /home/<Raspberry Piのユーザ名>/CLion/Sample1/debug
* ['target remote' ...]
* ['target remote' ...]
*: 自動的に入力される。
*: 自動的に入力される。
1,117行目: 1,243行目:
* [GDB サーバー引数:]
* [GDB サーバー引数:]
*: Qt WidgetsまたはQMLを使用するプロジェクトの場合、デバッグまたは実行時において、実行可能バイナリに<code>-platform wayland</code>オプションを付加する必要がある。
*: Qt WidgetsまたはQMLを使用するプロジェクトの場合、デバッグまたは実行時において、実行可能バイナリに<code>-platform wayland</code>オプションを付加する必要がある。
*: 例: <code>:<GDBサーバのポート番号 例: 1234> /<実行可能バイナリが配置されるPinePhone上のディレクトリ>/debug/<実行バイナリのファイル名> -platform wayland</code>
*: 例: <code>:<GDBサーバのポート番号 例: 1234> /<実行可能バイナリが配置されるRaspberry Pi上のディレクトリ>/debug/<実行バイナリのファイル名> -platform wayland</code>
<br>
<br>
次に、[拡張 GDB サーバーオプション]項目を設定する。<br>
次に、[拡張 GDB サーバーオプション]項目を設定する。<br>
この設定は、PinePhoneにアップロードしたQtライブラリにおいて、デバッグまたは実行に関する設定を行う。<br>
この設定は、Raspberry PiにアップロードしたQtライブラリにおいて、デバッグまたは実行に関する設定を行う。<br>
* [作業ディレクトリ:]
* [作業ディレクトリ:]
*: 何も入力しない。
*: 何も入力しない。
1,127行目: 1,253行目:
**: :0
**: :0
** QT_QPA_PLATFORMTHEME
** QT_QPA_PLATFORMTHEME
**: Qt 6の場合 : qt6ct
**: Qt 5の場合 : qt5ct
**: Qt 5の場合 : qt5ct
** PATH
** PATH
**: PinePhone上のQt6ライブラリをアップロードしたbinディレクトリのパスを入力する。
**: Raspberry Pi上のQt5ライブラリをアップロードしたbinディレクトリのパスを入力する。
**: 例: /<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
**: 例: /<Qt5ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
** LD_LIBRARY_PATH
** LD_LIBRARY_PATH
**: PinePhone上のQt6ライブラリをアップロードしたlibディレクトリのパスを入力する。
**: Raspberry Pi上のQt5ライブラリをアップロードしたlibディレクトリのパスを入力する。
**: 例: /<Qt6ライブラリをアップロードしたディレクトリ>/lib:/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/qmltooling
**: 例: /<Qt5ライブラリをアップロードしたディレクトリ>/lib:/<Qt5ライブラリをアップロードしたディレクトリ>/plugins/qmltooling
** QT_PLUGIN_PATH
** QT_PLUGIN_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/plugins
**: /<Qt5ライブラリをアップロードしたディレクトリ>/plugins
** QT_QPA_PLATFORM_PLUGIN_PATH
** QT_QPA_PLATFORM_PLUGIN_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/plugins/platforms
**: /<Qt5ライブラリをアップロードしたディレクトリ>/plugins/platforms
** QML_IMPORT_PATH
** QML_IMPORT_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/qml
**: /<Qt5ライブラリをアップロードしたディレクトリ>/qml
** QML2_IMPORT_PATH
** QML2_IMPORT_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/qml
**: /<Qt5ライブラリをアップロードしたディレクトリ>/qml
** QT_DEBUG_PLUGINS
** QT_DEBUG_PLUGINS
**: 0または1を入力する。
**: 0または1を入力する。
1,163行目: 1,288行目:
       <env name="DISPLAY" value=":0" />
       <env name="DISPLAY" value=":0" />
       <env name="LANG" value="ja_JP.UTF-8" />
       <env name="LANG" value="ja_JP.UTF-8" />
       <env name="QML2_IMPORT_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/qml" />
       <env name="QML2_IMPORT_PATH" value="/<Qt5ライブラリをアップロードしたディレクトリ>/qml" />
       <env name="QML_IMPORT_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/qml" />
       <env name="QML_IMPORT_PATH" value="/<Qt5ライブラリをアップロードしたディレクトリ>/qml" />
       <env name="QT_DEBUG_PLUGINS" value="0" />
       <env name="QT_DEBUG_PLUGINS" value="0" />
       <env name="QT_PLUGIN_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/plugins" />
       <env name="QT_PLUGIN_PATH" value="/<Qt5ライブラリをアップロードしたディレクトリ>/plugins" />
       <env name="QT_QPA_PLATFORM_PLUGIN_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/platforms" />
       <env name="QT_QPA_PLATFORM_PLUGIN_PATH" value="/<Qt5ライブラリをアップロードしたディレクトリ>/plugins/platforms" />
       <env name="QT_QPA_PLATFORMTHEME" value="qt6ct" />
       <env name="QT_QPA_PLATFORMTHEME" value="Qt5ct" />
       <env name="LD_LIBRARY_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/lib:/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/qmltooling" />
       <env name="LD_LIBRARY_PATH" value="/<Qt5ライブラリをアップロードしたディレクトリ>/lib:/<Qt5ライブラリをアップロードしたディレクトリ>/plugins/qmltooling" />
       <env name="PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" />
       <env name="PATH" value="/<Qt5ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" />
     </envs>
     </envs>
   
   
1,208行目: 1,333行目:
  # /<プロジェクトディレクトリ>/.gdbinitファイル  または  /<プロジェクトディレクトリ>/.lldbinitファイル
  # /<プロジェクトディレクトリ>/.gdbinitファイル  または  /<プロジェクトディレクトリ>/.lldbinitファイル
   
   
  set sysroot <PinePhoneのシステムルートディレクトリ>
  set sysroot <Raspberry Piのシステムルートディレクトリ>
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
1,216行目: 1,341行目:




{{#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]]