MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - Qt5のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - Qt5
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == ここでは、Qt 5.14のインストール方法を記載する。<br> <br><br> == 通常のインストール == ==== 依存関係のライブラリのインストール ==== Qtの依存関係のライブラリをインストールする。<br> これらのライブラリは不要な可能性がある。(調査中)<br> sudo zypper install Mesa-devel Mesa-KHR-devel または sudo zypper install Mesa-KHR-devel Mesa-devel Mesa-dri-devel Mesa-libEGL-devel Mesa-libGL-devel Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel \ Mesa-libglapi-devel kbproto-devel libOSMesa-devel libOSMesa8 libX11-devel libXau-devel libdrm-devel libgbm-devel \ libglvnd-devel libxcb-devel libxcb-screensaver0 libxcb-xf86dri0 libxcb-xtest0 libxcb-xvmc0 pthread-stubs-devel xproto-devel <br> ==== Qtのダウンロード ==== 最新版のQtをダウンロードするため、以下のコマンドを実行する。<br> ファイル情報を知りたい場合はこの[http://download.qt.io/official_releases/ Webサイト]を参照する。<br> wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run ダウンロードしたファイルのアクセス権限を変更する。<br> chmod +x qt-unified-linux-x64-online.run <br> ==== Qtのインストール ==== /usr/localディレクトリ等にインストールする場合は、スーパーユーザでインストールする。<br> ホームディレクトリにインストールする場合は、ローカルユーザでインストールする。<br> <br> 次に、GCCおよびmake、付随するライブラリをインストールする。<br> # CentOS sudo yum groupinstall "Development tools" # SUSE sudo zypper install --type pattern devel_basis <br> Qtをインストールする。<br> ./qt-unified-linux-x64-online.run <br> Qtのインストール画面に従って、インストールを実行する。<br> <br><br> == ソースコードからインストール == ==== 必須環境 ==== * Qt 5.14.0以降 * Qt WebEngine module for QtWebEngine based help viewer * GCC 7以降 * オプション : CMake *: CMakeを使用してLLVM / ClangとQt Creatorをビルドする時に必要である。 * オプション : Ninja *: CMakeを使用してビルドする時に必要である。 * オプション : LLVM / Clang 8.0.0以降<br> *: Clang Code Model、Clang Tools、ClangFormat、Clang PCH Manager、Clang Refactoringプラグインに必要である。 *: LLVM C++ APIは互換性を保証するものではないので、それ以降のバージョンがコンパイルできない場合は、そのバージョンをサポートしていない。 * オプション : Qbs 1.7.x *: Qtのソースコードには、Qbs自身も含まれている。 <br> また、Qtをビルドする時のオプション設定を以下に記載する。<br> # オプション : 環境変数PATHにおいて、llvm-configのパスが通っていない場合に必要である export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ> # オプション : Clangのリファクタリングを無効にする場合、1を設定する export QTC_DISABLE_CLANG_REFACTORING=1 # オプション : QbsProjectManagerプラグインがQbsを使用する場合に必要である export QBS_INSTALL_DIR=/path/to/qbs # オプション : KSyntaxHighlightingを使用する場合、KSYNTAXHIGHLIGHTING_LIB_DIRライブラリを保持するディレクトリを設定する # インクルードディレクトリの自動推定に失敗する場合、KSYNTAXHIGHLIGHTING_INCLUDE_DIRを設定して、 # 両方の設定をqmakeコマンドのオプションで渡すこともできる export KSYNTAXHIGHLIGHTING_INCLUDE_DIR=<インクルードファイルを保持するディレクトリ> export KSYNTAXHIGHLIGHTING_LIB_DIR=<ライブラリを保持するディレクトリ> <br> ==== 依存関係のライブラリのインストール ==== Qtのソースコードをコンパイルするために必要な依存関係のライブラリをインストールする。<br> sudo zypper install git-core gcc-c++ make python3 perl \ xorg-x11-libxcb-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-renderutil-devel \ xcb-util-wm-devel xorg-x11-devel libxkbcommon-x11-devel libxkbcommon-devel libXi-devel \ flex bison gperf libicu-devel ruby \ alsa-devel dbus-1-devel libXcomposite-devel libXcursor-devel libXrandr-devel libXtst-devel mozilla-nspr-devel \ mozilla-nss-devel gperf bison nodejs10 nodejs10-devel \ pulseaudio-libs-devel alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel wayland-devel <br> * fontconfig-devel * libfontenc-devel * libXft-devel * libx11-devel * libxcb-devel * libXext-devel * libXfixes-devel * libXrender-devel * libxcb-devel * Mesa-libGL-devel * xcb-util-keysyms-devel * xcb-util-image-devel * xcb-util-wm-devel * libXfixes-devel * xcb-util-renderutil-devel * libXinerama-devel * libxcb-shm0-dev * libxcb-sync0-dev * libxcb-shape0-dev <br> ==== ソースコードのダウンロード ==== Qtのソースコードをダウンロードする。<br> git clone --recursive https://code.qt.io/qt-creator/qt-creator.git <br> ==== ソースコードのビルド ==== Qtのソースコードをビルドするため、ビルド用のディレクトリを作成する。<br> mkdir build cd build <br> * qmakeを使用する場合 *: オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。 *: <code>export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ></code> *: <code>qmake ../qt-creator/qtcreator.pro</code> *: <code>make qmake_all</code> *: <code>make -j 8</code> *: もし、<code>Project ERROR: Unknown module(s) in QT: script</code>というエラーが出力される場合、以下のコマンドを実行する。 *: <code>make -j 8 module-qtscript</code> *: <br> * cmakeを使用する場合 *: Qtのソースコードをビルドする。 *: <code>cmake -G Ninja -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=<Qtのインストールディレクトリ>; <LLVMのインストールディレクトリ> ../qt-creator</code> *: <code>cmake --build ..</code> <br> コンパイルには時間が掛かるので気長に待つ。(バイナリファイルは、qt-createor-build/binディレクトリに作成される)<br> <br> ==== Qtのインストール ==== Qtをインストールする。<br> make install INSTALL_ROOT=<Qtのインストールディレクトリ> <br><br> == デスクトップエントリの追加 == 以下のコマンドを実行して、デスクトップエントリを追加する。 sudo vi /usr/share/applications/qtcreator.desktop # qtcreator.desktopファイル [Desktop Entry] Type=Application Exec="/home/ユーザ名/Qt/Tools/QtCreator/bin/qtcreator" %F Name=Qt Creator GenericName=The IDE of choice for Qt development. Icon=QtProject-qtcreator StartupWMClass=qtcreator Terminal=false Categories=Development;IDE;Qt; MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs; <br> sudo vi /usr/share/applications/Qt-MaintenanceTool.desktop # Qt-MaintenanceTool.desktopファイル [Desktop Entry] Type=Application Exec=/home/ユーザ名/Qt/MaintenanceTool Path=/home/ユーザ名/Qt Name=Qt Maintenance Tool GenericName=Install or uninstall Qt components. Icon=/home/ユーザ名/Qt/QtIcon.png Terminal=false Categories=Development;Qt; <br> sudo vi /usr/share/applications/qt-project.qtdesigner.desktop # qt-project.qtdesigner.desktopファイル [Desktop Entry] Type=Application Exec="/home/ユーザ名/Qt/5.14.0/gcc_64/bin/designer" %F Name=Qt Designer GenericName=Qt designer Icon=/home/ユーザ名/Qt/designer.png StartupWMClass=qtdesigner Terminal=false Categories=Development;IDE;Qt; MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs; <br><br> == クロスコンパイル == Raspberry Piにおいて、クロスコンパイルを行う手順を記載する。<br> <br> これは、デスクトップスタイルのソフトウェアをX11の下で実行するためのものではなく、<br> ソフトウェアがBroadcomドライバを使用して、dispmanx / EGLの上でフルスクリーンで実行するという、<br> 実際の組み込み / デバイス作成のユースケースを想定している。<br> <br> ==== Linux PCの初期設定 ==== Linux PCにおいて、以下の依存関係のライブラリをインストールする。<br> sudo zypper install libicu-devel Mesa-devel Mesa-libGL-devel libXinerama-devel libxslt-devel \ libopenssl-devel libXcursor-devel libXcomposite-devel libXdamage-devel libXrandr-devel fontconfig-devel \ libcap-devel libXtst-devel libpulse-devel libudev-devel pciutils-devel mozilla-nss-devel libXss-devel \ Mesa-libEGL-devel sudo zypper install cmake unzip sudo zypper install autoconf automake tar gcc g++ libgfortran5 gperf git python gperf pkg-config wget sudo zypper install flex texinfo gawk bison openssl pigz ncurses5-devel figlet <br> Raspberry Pi向けにビルドするため、GCC ARMツールチェインをダウンロードする。<br> <center> 表. GCC ARMツールチェーンのダウンロード<br> {| class="wikitable" style="background-color:#fefefe;" |- ! style="background-color:#00ffff;" | GCC ARMツールチェーン ! style="background-color:#00ffff;" | ビルドOS ! style="background-color:#00ffff;" | ターゲットOS ! style="background-color:#00ffff;" | GCC ARMツールチェーンのバージョン |- | Raspbian Stretch 32bit || x64 / x86 Linux || Raspbian Stretch 32bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ 6.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Stretch/GCC%2010.2.0/ 10.2.0] |- | Raspbian Stretch 64bit || x64 / x86 Linux || Raspbian Stretch 64bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%206.3.0/ 6.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Stretch/GCC%2010.2.0/ 10.2.0] |- | Raspbian Buster 32bit || x64 / x86 Linux || Raspbian Buster 32bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ 8.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Raspberry%20Pi%20GCC%20Cross-Compiler%20Toolchains/Buster/GCC%2010.2.0/ 10.2.0] |- | Raspbian Buster 64bit || x64 / x86 Linux || Raspbian Buster 64bit || [https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Buster/GCC%208.3.0/ 8.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Buster/GCC%209.3.0/ 9.3.0]<br>[https://sourceforge.net/projects/raspberry-pi-cross-compilers/files/Bonus%20Raspberry%20Pi%20GCC%2064-Bit%20Toolchains/Raspberry%20Pi%20GCC%2064-Bit%20Cross-Compiler%20Toolchains/Buster/GCC%2010.2.0/ 10.2.0] |} </center> <br> また、古いコンパイラではあるが、LINEROからGCC ARMツールチェーンをダウンロードできる。<br> https://releases.linaro.org/components/toolchain/binaries/<br> wget https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz tar xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz <br> GCC ARMツールチェインを解凍して、任意のディレクトリに配置する。<br> ここでは、~/InstallSoftware/GCC_ARMディレクトリに配置している。<br> mv cross-gcc-10.2.0-pi_3+.tar.gz GCC_Raspbian_Buster32_10_2_0 cd GCC_Raspbian_Buster32_10_2_0 ~/InstallSoftware/GCC_ARM <br> GCC ARMツールチェーンは、システム固有のLTO(Link Time Optimization)フラグを使用して構築されているため、<br> ソフトウェアをコンパイルする時、これらのツールチェーンを使用することで、Raspberry PiのSoC固有の機能を簡単に利用することができる。<br> <br> Raspberry Pi 4は、Broadcom BCM2711 SoC(Cortex-A72 64bit)を採用しており、Raspberry Pi 3B+と同様、ARMv8-aアーキテクチャを採用している。<br> <br> <center> 表. Raspberry PiとLTO(Link Time Optimization)フラグの関係<br> {| class="wikitable" style="background-color:#fefefe;" |- ! style="background-color:#00ffff;" | Raspberry Piの種類 ! style="background-color:#00ffff;" | 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 2 Model A / B<br>Raspberry Pi 3 Model A / B || -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 |- | Raspberry Pi 3 Model A+ / B+ (32Bit)<br>Raspberry Pi 4 Model A+ / B+ (32Bit)<br>Raspberry Pi Compute 3 / 3lite / 3+ (32Bit) || -march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8 |- | Raspberry Pi 3 Model A+ / B+ (64Bit)<br>Raspberry Pi 4 Model A+ / B+ (64Bit)<br>Raspberry Pi Compute 3 / 3lite / 3+ (64Bit) || -march=armv8-a+fp+simd |} </center> <br> ==== Raspberry Piの初期設定 ==== raspi-configを実行して、Xではなくコンソールで起動するように変更して、VRAMを256[MB]に変更する。(オプション)<br> sudo raspi-config <br> また、Raspbian Stretchの場合は、rpi-updateを実行する必要がある。<br> 詳細については、[https://bugreports.qt.io/browse/QTBUG-62216 こちらを参照]すること。<br> sudo rpi-update reboot <br> Qtの開発用ライブラリファイルをインストールする。(ここでは簡単にするために、build-depを使用する)<br> /etc/apt/sources.listファイルのdeb-srcから始まる行のコメントを外す。<br> sudo vi /etc/apt/sources.list <br> # /etc/apt/sources.list # 編集前 # Raspbian Stretch #deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi # Raspbian Buster #deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi # 編集後 # Raspbian Stretch deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi # Raspbian Buster deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi <br> sudo apt-get update && sudo apt-get full-upgrade && sudo apt autoremove # Raspbian Stretch sudo apt-get build-dep qt4-x11 sudo apt-get build-dep libqt5gui5 sudo apt-get install libinput-dev libpthread-stubs0-dev libts-0.0-0 libts-dev libudev-dev libxau-dev \ libxcb-doc libxcb-xinerama0-dev libxcb-xinerama0-dev libxcb-xinerama0 libxcb1-dev libxdmcp-dev tsconf x11proto-core-dev \ xorg-sgml-doctools # Raspbian Buster sudo apt-get install build-essential cmake unzip pkg-config sudo apt-get build-dep qt5-qmake libqt5gui5 libqt5webengine-data libqt5webkit5 libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev \ libxcb-xinerama0 gdbserver sudo apt-get install libxcb-randr0-dev libxcb-xtest0-dev libxcb-shape0-dev libxcb-xkb-dev <br> もし、Qtソフトウェアにおいて、マルチメディアやBluetoothの機能を追加する場合、以下のパッケージをインストールする。<br> # マルチメディア用 sudo apt install libjpeg-dev libpng-dev libtiff-dev sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt install libxvidcore-dev libx264-dev # マルチメディア用(GStreamer) sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 \ gstreamer1.0-qt5 gstreamer1.0-pulseaudio sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev # オーディオ用 sudo apt install libopenal-data libsndio7.0 libopenal1 libopenal-dev pulseaudio # Bluetooth用 sudo apt install bluez-tools sudo apt install libbluetooth-dev <br> ビルドしたQtソフトウェアをRasberry Piにデプロイするためのディレクトリ(ターゲットディレクトリ)を作成する。<br> mkdir ~/Qt5Pi <br> また、以下のように、重要なシンボリックリンクを設定する。<br> sudo ln -sf -r /usr/include/arm-linux-gnueabihf/asm /usr/include && \ sudo ln -sf -r /usr/include/arm-linux-gnueabihf/gnu /usr/include && \ sudo ln -sf -r /usr/include/arm-linux-gnueabihf/bits /usr/include && \ sudo ln -sf -r /usr/include/arm-linux-gnueabihf/sys /usr/include && \ sudo ln -sf -r /usr/include/arm-linux-gnueabihf/openssl /usr/include && \ sudo ln -sf /usr/lib/arm-linux-gnueabihf/crtn.o /usr/lib/crtn.o && \ sudo ln -sf /usr/lib/arm-linux-gnueabihf/crt1.o /usr/lib/crt1.o && \ sudo ln -sf /usr/lib/arm-linux-gnueabihf/crti.o /usr/lib/crti.o <br> 次のセクションにおいて、<code>rsync</code>コマンドを使用してLinux PCとRaspberry Piのファイルを同期する。<br> <u>しかし、同期するファイルには、スーパユーザ権限が必要なものがある。</u><br> <br> そのため、一般ユーザでも全てのファイルを同期できるように、/etc/sudoersファイルに以下の設定を追記する。<br> 以下の設定により、<code>rsync</code>コマンドは、必要に応じてスーパユーザ権限で実行される。<br> echo "$USER ALL=NOPASSWD:$(which rsync)" | sudo tee --append /etc/sudoers <br> ==== クロスコンパイル用Qtライブラリのビルドおよびインストール ==== Linux PC上で、Raspberry Pi向けのQtソフトウェアをクロスコンパイルできるように、ツールチェーンおよびSDKを設定する。<br> Raspberry Pi上でネイティブにコンパイルすることもできるが、Linux PCの方がスループットが良い。<br> <br> Linux PC上に開発用ディレクトリを作成する。<br> また、Raspberry Piのいくつかのルートディレクトリと同期する必要があるため、システムルートディレクトリも作成する。<br> mkdir -p ~/Program/Qt_Embedded ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt <br> <code>rsync</code>コマンドを使用して、Raspberry Piのいくつかのルートディレクトリと同期する。<br> rsync -avz --rsync-path="sudo rsync" --delete --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include ~/Program/Qt_Embedded/sysroot/usr rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib ~/Program/Qt_Embedded/sysroot/usr rsync -avz --rsync-path="sudo rsync" --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/opt/vc ~/Program/Qt_Embedded/sysroot/opt <br> 同期したいくつかのルートディレクトリのシンボリックリンクを相対的に調整する。<br> fixQualifiedLibraryPathsが正常に動作しないため、提供されたスクリプトをダウンロードして実行する。<br> wget https://raw.githubusercontent.com/Kukkimonsuta/rpi-buildqt/master/scripts/utils/sysroot-relativelinks.py chmod +x sysroot-relativelinks.py ./sysroot-relativelinks.py ~/Program/Qt_Embedded/sysroot <br> Linux PC上で、QtBaseのダウンロードとQtの設定を行う。<br> <br> ここでは、Qtソフトウェアのターゲットディレクトリにおいて、Raspberry Pi側では、~/Qt5Piディレクトリ、<br> qmake等のホストツール(Linux PC上)では、~/Program/Qt_Embedded/Qt5ディレクトリ、<br> <code>make install</code>コマンドでは、~/Program/Qt_Embedded/Qt5Piをターゲットとする。<br> (Raspberry Piと同期するのは、このディレクトリである)<br> <br> 以下のコマンドにおいて、<Qtのバージョン>は、使用するQtのバージョンに変更する。 * <Qtのバージョン> ** Qt 5.12.7 **: 5.12.7 ** Qt 5.15.2 **: 5.15.2 <br> また、<Raspberry Piのバージョン>は、Raspberry Piの種類に変更する。<br> * <Raspberry Piのバージョン> ** Raspberry Pi 1 **: <code>linux-rasp-pi-g++</code> ** Raspberry Pi 2 **: <code>linux-rasp-pi2-g++</code> ** Reaspberry Pi 3 **: <code>linux-rasp-pi3-g++</code> ** Raspberry Pi 4 **: <code>linux-rasp-pi4-v3d-g++</code> <br> <u>Raspbian OSにおいて、64ビットを使用している場合は、<code>device-option</code>オプションを以下のように記述する。</u><br> -device-option CROSS_COMPILE=/<GCC ARMツールチェイン 64bitのインストールディレクトリ>/bin/arm-linux-gnueabihf- <br> また、Qt 5.9以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br> cd ~/Program/Qt_Embedded git clone git://code.qt.io/qt/qtbase.git -b <Qtのバージョン> または git clone https://github.com/qt/qtbase -b <Qtのバージョン> cd qtbase && mkdir build && cd build ../configure -release -opengl es2 -eglfs -device <Raspberry Piのバージョン> \ -device-option CROSS_COMPILE=/<GCC ARMツールチェーンのインストールディレクトリ>/bin/arm-linux-gnueabihf- \ -sysroot /home/<ユーザ名>/Program/Qt_Embedded/sysroot -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine \ -nomake tests -make libs -pkg-config -recheck \ -L/home/<ユーザ名>/Program/Qt_Embedded/sysroot/usr/lib/arm-linux-gnueabihf -I/home/<ユーザ名>/Program/Qt_Embedded/sysroot/usr/include/arm-linux-gnueabihf \ -prefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -extprefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -v -no-use-gold-linker make -j $(nproc) make install <br> 失敗した場合は、全てを削除するために以下のコマンドを実行する。<br> git clean -dfx <br> 上記のQtBaseを使用せずに、全てのQtモジュールをビルドおよびインストールする場合、以下のコマンドを実行する。<br> wget https://download.qt.io/official_releases/qt/x.x/x.x.x/single/qt-everywhere-src-x.x.x.tar.xz tar xf qt-everywhere-opensource-src-x.x.x.tar.gz cd qt-everywhere-opensource-src-x.x.x mkdir build && cd build # Raspberry Pi 3B向け ../configure -release -opengl es2 -device <Raspberry Piのバージョン> \ -device-option CROSS_COMPILE=/<GCC ARMツールチェーンのインストールディレクトリ>/bin/arm-linux-gnueabihf- \ -sysroot /home/<ユーザ名>/Program/Qt_Embedded/sysroot -opensource -confirm-license \ -prefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -extprefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -hostprefix /home/<ユーザ名>/Program/Qt_Embedded/Qt5 -v -no-use-gold-linker make -j $(nproc) make install <br> ただし、SDKにネイティブのrccファイルが含まれていないため、rccファイルをSDKのbinディレクトリにコピーする。<br> (Qtモジュールを使用するソフトウェアをビルドする場合、このrccバイナリが必要である)<br> cp ~/Program/Qt_Embedded/qtbase/bin/rcc ~/Program/Qt_Embedded/Qt5/bin <br> ビルドしたQtライブラリを、Raspberry Piにデプロイする。<br> ~/Program/Qt_Embedded/Qt5ディレクトリに存在する全てのファイルを、Raspberry Piの/usr/localディレクトリに同期させる。<br> rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5 <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/local <br> Raspberry PiのリンカがQtライブラリを読み込むようにするため、以下のコマンドを実行する。<br> ただし、Raspberry Pi 2の場合、Qtソフトウェアの実行で問題が発生する時は、qt5_15.confファイルではなく、00-qt5_15.confファイルを作成する。<br> echo /usr/local/qt5_15/lib | sudo tee /etc/ld.so.conf.d/qt5_15.conf sudo ldconfig <br> 上記の設定により、Raspberry Pi上において、Qt 5.15.2を使用できる。<br> <br><br> ==== Qtソフトウェアの動作確認 ==== Qtソフトウェアをビルドして、動作確認を行う。<br> <br> まず、Qt Creatorを起動して、Qt Creatorメイン画面左の[プロジェクト] - 右ペインの[ビルド設定] - [Build Environment]項目 - [詳細]プルダウンを開く。<br> [詳細]プルダウンから[追加]ボタンを押下して、以下の項目を設定する。<br> * Variable - QT_QPA_PLATFOMRTHEME *: Value - qt5ct * Variable - DISPLAY *: Value - :0.0 * Variable - XAUTHORITY *: Value - /home/<Raspberry Piのユーザ名>/.Xauthrity * Variable - XDG_SESSION_TYPE *: Value - x11 <br> 次に、Raspberry Pi側の~/.profileファイルまたは~/.bashrcファイルに、以下の設定を追記する。<br> export QT_QPA_PLATFOMRTHEME=qt5ct export DISPLAY=:0.0 export XAUTHORITY=/home/<Raspberry Piのユーザ名>/.Xauthrity export XDG_SESSION_TYPE=x11 <br> ビルドの完了後、実行ファイルをRaspberry Piにコピーする。<br> cd qtbase/examples/opengl/qopenglwidget ~/Program/Qt_Embedded/Qt5/bin/qmake make -j 8 scp -P <ポート番号> -i <秘密鍵のフルパス> qopenglwidget <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi <br> Raspberry Pi上で、リンカがQtライブラリを見つけられるように、Raspberyy Piを更新する。<br> もし、サンプルの実行に問題がある場合は、qt5pi.confの代わりに00-qt5pi.confを使用して、適切な順序を導入する。<br> echo ~/Qt5Pi/lib | sudo tee /etc/ld.so.conf.d/qt5pi.conf sudo ldconfig <br> Raspberry Pi上で、EGL / GLESライブラリを修正する。<br> Raspberry Piの/usr/lib/arm-linux-gnueabihfディレクトリには、MesaのlibEGLとlibGLESv2が存在する。<br> Qtソフトウェアは、/opt/vc/libディレクトリにあるライブラリではなく、これらを選択することになる。<br> <br> これは、OpenGLのパフォーマンスを気にしないX11デスクトップソフトウェアには都合が良いが、<br> フルスクリーンの組み込みソフトウェアをウィンドウ化するには全く役に立たない。<br> <br> オリジナルのファイルは、必ず、バックアップする。<br> sudo mv /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0_org sudo mv /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_org sudo ln -s /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 sudo ln -s /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 sudo ln -s /opt/vc/lib/libbrcmEGL.so /opt/vc/lib/libEGL.so sudo ln -s /opt/vc/libbrcmGLESv2.so /opt/vc/libGLESv2.so <br> また、見つからないシンボリックリンクも追加する。<br> sudo ln -s /opt/vc/lib/libEGL.so /opt/vc/lib/libEGL.so.1 sudo ln -s /opt/vc/libGLESv2.so /opt/vc/lib/libGLESv2.so.2 <br> 以下の例では、Linux PC上で、Qtソフトウェアをダウンロードおよびビルドしている。<br> <Qtソフトウェアのサンプル>と<Qtのバージョン>はユーザ環境に合致するものを記述すること。<br> git clone git://code.qt.io/qt/<Qtソフトウェアのサンプル>.git -b <Qtのバージョン> cd <Qtソフトウェアのサンプル> ~/Program/Qt_Embedded/Qt5/bin/qmake make -j 8 make install <br> 最後に、Qtソフトウェアをデプロイする。<br> rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]]
インストール - Qt5
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse