「インストール - Qt5」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
242行目: 242行目:
<code>rsync</code>コマンドを使用することにより、Raspberry Piのディレクトリと同期することができる。<br>
<code>rsync</code>コマンドを使用することにより、Raspberry Piのディレクトリと同期することができる。<br>
  mkdir ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt
  mkdir ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt
  rsync -avz --progress -e --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot
  rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot
  rsync -avz --progress -e --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/usr/include ~/Program/Qt_Embedded/sysroot/usr
  rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include ~/Program/Qt_Embedded/sysroot/usr
  rsync -avz --progress -e --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/usr/lib ~/Program/Qt_Embedded/sysroot/usr
  rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib ~/Program/Qt_Embedded/sysroot/usr
  rsync -avz --progress -e --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib:/opt/vc ~/Program/Qt_Embedded/sysroot/opt
  rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/opt/vc ~/Program/Qt_Embedded/sysroot/opt
<br>
<br>
Linux PC上で、シンボリックリンクを相対的に調整する。<br>
Linux PC上で、シンボリックリンクを相対的に調整する。<br>
263行目: 263行目:
<Raspberry Piのバージョン>には、<code>linux-rasp-pi-g++</code>、Raspberry Pi 2は<code>linux-rasp-pi2-g++</code>、Reaspberry Pi 3は<code>linux-rasp-pi3-g++</code>を指定する。<br>
<Raspberry Piのバージョン>には、<code>linux-rasp-pi-g++</code>、Raspberry Pi 2は<code>linux-rasp-pi2-g++</code>、Reaspberry Pi 3は<code>linux-rasp-pi3-g++</code>を指定する。<br>
<br>
<br>
Raspbianが64ビットの場合は、デバイスオプションを以下のように編集する。<br>
<u>Raspbianが64ビットの場合は、<code>device-option</code>オプションを以下のように記述する。</u><br>
また、Qt 5.9以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br>
  -device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
  -device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-
<br>
<br>
また、Qt 5.9以降は、<code>-no-use-gold-linker</code>オプションを追加する必要がある。<br>
  cd ~/Program/Qt_Embedded
  cd ~/Program/Qt_Embedded
  git clone --depth 1 git://code.qt.io/qt/qtbase.git -b <Qtのバージョン>
  git clone git://code.qt.io/qt/qtbase.git -b <Qtのバージョン>
  cd qtbase
  cd qtbase
   
   
284行目: 284行目:
Linux PC上で、QtをRaspberry Piにデプロイする。<br>
Linux PC上で、QtをRaspberry Piにデプロイする。<br>
ここでは、~/Program/Qt_Embedded/Qt5Piから上で設定したプレフィックスに全てを同期させる。<br>
ここでは、~/Program/Qt_Embedded/Qt5Piから上で設定したプレフィックスに全てを同期させる。<br>
  rsync -avz --progress -e --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/local
  rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi
<br>
<br>
Linux PC上で、Qtのサンプルプログラムをビルドして動作確認を行う。<br>
Linux PC上で、Qtのサンプルプログラムをビルドして動作確認を行う。<br>
320行目: 320行目:
  sudo ln -s /opt/vc/libGLESv2.so /opt/vc/lib/libGLESv2.so.2
  sudo ln -s /opt/vc/libGLESv2.so /opt/vc/lib/libGLESv2.so.2
<br>
<br>
以下の例では、Linux PC上で、Qtソフトウェアをダウンロードしてビルドしている。<br>
以下の例では、Linux PC上で、Qtソフトウェアをダウンロードおよびビルドしている。<br>
(<qt-module>と<qt-version>はユーザ環境に合致するものを記述する)<br>
<Qtソフトウェアのサンプル>と<Qtのバージョン>はユーザ環境に合致するものを記述すること。<br>
  git clone git://code.qt.io/qt/<Qtソフトウェアのサンプルプロジェクト>.git -b <qt-version>
  git clone git://code.qt.io/qt/<Qtソフトウェアのサンプル>.git -b <Qtのバージョン>
  cd <Qtソフトウェアのサンプルプロジェクト>
  cd <Qtソフトウェアのサンプル>
   
   
  ~/Program/Qt_Embedded/Qt5/bin/qmake
  ~/Program/Qt_Embedded/Qt5/bin/qmake
330行目: 330行目:
<br>
<br>
最後に、Qtソフトウェアをデプロイする。<br>
最後に、Qtソフトウェアをデプロイする。<br>
  rsync -avz progress -e --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/local
  rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]]
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Qt]]

2021年4月7日 (水) 17:56時点における版

概要

ここでは、Qt 5.14のインストール方法を記載する。


通常のインストール

依存関係のライブラリのインストール

Qtの依存関係のライブラリをインストールする。
これらのライブラリは不要な可能性がある。(調査中)

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


Qtのダウンロード

最新版のQtをダウンロードするため、以下のコマンドを実行する。
ファイル情報を知りたい場合はこのWebサイトを参照する。

wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run

ダウンロードしたファイルのアクセス権限を変更する。

chmod +x qt-unified-linux-x64-online.run


Qtのインストール

/usr/localディレクトリ等にインストールする場合は、スーパーユーザでインストールする。
ホームディレクトリにインストールする場合は、ローカルユーザでインストールする。

次に、GCCおよびmake、付随するライブラリをインストールする。

# CentOS
sudo yum groupinstall "Development tools"

# SUSE
sudo zypper install --type pattern devel_basis


Qtをインストールする。

./qt-unified-linux-x64-online.run


Qtのインストール画面に従って、インストールを実行する。


ソースコードからインストール

必須環境

  • 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以降
    Clang Code Model、Clang Tools、ClangFormat、Clang PCH Manager、Clang Refactoringプラグインに必要である。
    LLVM C++ APIは互換性を保証するものではないので、それ以降のバージョンがコンパイルできない場合は、そのバージョンをサポートしていない。
  • オプション : Qbs 1.7.x
    Qtのソースコードには、Qbs自身も含まれている。


また、Qtをビルドする時のオプション設定を以下に記載する。

# オプション : 環境変数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=<ライブラリを保持するディレクトリ>


依存関係のライブラリのインストール

Qtのソースコードをコンパイルするために必要な依存関係のライブラリをインストールする。

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


  • 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


ソースコードのダウンロード

Qtのソースコードをダウンロードする。

git clone --recursive https://code.qt.io/qt-creator/qt-creator.git


ソースコードのビルド

Qtのソースコードをビルドするため、ビルド用のディレクトリを作成する。

mkdir build
cd build


  • qmakeを使用する場合
    オプションのClang Code Modelプラグインをビルドする場合、LLVMのインストールディレクトリへのパスを指定する必要がある。
    export LLVM_INSTALL_DIR=<LLVMのインストールディレクトリ>
    qmake ../qt-creator/qtcreator.pro
    make qmake_all
    make -j 8
    もし、Project ERROR: Unknown module(s) in QT: scriptというエラーが出力される場合、以下のコマンドを実行する。
    make -j 8 module-qtscript

  • cmakeを使用する場合
    Qtのソースコードをビルドする。
    cmake -G Ninja -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=<Qtのインストールディレクトリ>; <LLVMのインストールディレクトリ> ../qt-creator
    cmake --build ..


コンパイルには時間が掛かるので気長に待つ。(バイナリファイルは、qt-createor-build/binディレクトリに作成される)

Qtのインストール

Qtをインストールする。

make install INSTALL_ROOT=<Qtのインストールディレクトリ>



デスクトップエントリの追加

以下のコマンドを実行して、デスクトップエントリを追加する。

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;


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;


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;



クロスコンパイル

Raspberry Piにおいて、クロスコンパイルを行う手順を記載する。

これは、デスクトップスタイルのソフトウェアをX11の下で実行するためのものではなく、
ソフトウェアがBroadcomドライバを使用して、dispmanx / EGLの上でフルスクリーンで実行するという、
実際の組み込み / デバイス作成のユースケースを想定している。

Raspberry Piの初期設定

raspi-configを実行して、Xではなくコンソールで起動するように変更して、VRAMを256[MB]に変更する。(オプション)

sudo raspi-config


また、Raspbian Stretchの場合は、rpi-updateを実行する必要がある。(詳細については、こちらを参照すること)

sudo rpi-update
reboot


Qtの開発用ライブラリファイルをインストールする。(ここでは簡単にするために、build-depを使用する)
/etc/apt/sources.listファイルのdeb-srcから始まる行のコメントを外す。

sudo vi /etc/apt/sources.list

# /etc/apt/sources.list
# 編集前
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi

# 編集後
deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi


sudo apt-get update
sudo apt-get build-dep qt4-x11
sudo apt-get build-dep libqt5gui5
sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0


ターゲットディレクトリを作成する。

sudo mkdir ~/Qt5Pi
sudo chown pi:pi Qt5Pi


上記の設定により、Raspberry Piのルートファイルシステムにツールチェインと必要なファイルをインストールすることで、
ソフトウェアのクロスコンパイルができるようになる。

ツールチェーン / SDKのセットアップ

Linux PC上で、Raspberry Pi向けのQtソフトウェアをクロスコンパイルできるように、ツールチェーンおよびSDKを設定する。
Raspberry Pi上でネイティブにコンパイルすることもできるが、Linux PCの方がスループットが良い。

Linux PC上に作業ディレクトリを作成して、ツールチェーンをダウンロードする。

mkdir -p ~/Program/Qt_Embedded && cd ~/Program/Qt_Embedded
git clone --depth 1 https://github.com/raspberrypi/tools


Gitを使用せずに、全てのQtモジュールをビルドおよびインストールする場合、以下のコマンドを実行する。

wget http://download.qt.io/official_releases/qt/5.x/5.x.x/single/qt-everywhere-opensource-src-x.x.x.tar.gz
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 linux-rasp-pi3-g++ 
-device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- \
-sysroot ~/Program/Qt_Embedded/sysroot -opensource -confirm-license \
-prefix ~/Program/Qt_Embedded/Qt5Pi -extprefix ~/Program/Qt_Embedded/Qt5Pi -hostprefix ~/Program/Qt_Embedded/Qt5 -v

make -j 8
make install 


ただし、SDKにネイティブのrccファイルが含まれていないため、rccファイルをSDKのbinディレクトリにコピーする。
(Qtモジュールを使用するソフトウェアをビルドする場合、このrccバイナリが必要である)

cp ~/Program/Qt_Embedded/qtbase/bin/rcc ~/Program/Qt_Embedded/Qt5Pi/bin


Linux PC上に、~/Program/Qt_Embedded/sysrootディレクトリを作成する。
rsyncコマンドを使用することにより、Raspberry Piのディレクトリと同期することができる。

mkdir ~/Program/Qt_Embedded/sysroot ~/Program/Qt_Embedded/sysroot/usr ~/Program/Qt_Embedded/sysroot/opt
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/lib ~/Program/Qt_Embedded/sysroot
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/include ~/Program/Qt_Embedded/sysroot/usr
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/usr/lib ~/Program/Qt_Embedded/sysroot/usr
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/opt/vc ~/Program/Qt_Embedded/sysroot/opt


Linux PC上で、シンボリックリンクを相対的に調整する。
fixQualifiedLibraryPathsが正常に動作しないため、提供されたスクリプトをダウンロードして実行する。

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


Linux PC上で、QtBaseのダウンロードとQtの設定を行う。
ここでは、ターゲットディレクトリにおいて、Raspberry Pi側では、~/Qt5Piディレクトリ、
qmake等のホストツール(Linux PC上)では、~/Program/Qt_Embedded/Qt5ディレクトリ、
make installコマンドでは、~/Program/Qt_Embedded/Qt5Piをターゲットとする。
(Raspberry Piと同期するのは、このディレクトリである)

<Qtのバージョン>を適切なQtのバージョンに変更する必要がある。(例. 5.12.7や5.15.2等)
また、<Raspberry Piのバージョン>を適切なRaspberry Piのバージョンに変更する必要がある。
<Raspberry Piのバージョン>には、linux-rasp-pi-g++、Raspberry Pi 2はlinux-rasp-pi2-g++、Reaspberry Pi 3はlinux-rasp-pi3-g++を指定する。

Raspbianが64ビットの場合は、device-optionオプションを以下のように記述する。

-device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-


また、Qt 5.9以降は、-no-use-gold-linkerオプションを追加する必要がある。

cd ~/Program/Qt_Embedded
git clone git://code.qt.io/qt/qtbase.git -b <Qtのバージョン>
cd qtbase

./configure -release -opengl es2 -device <Raspberry Piのバージョン> \
-device-option CROSS_COMPILE=~/Program/Qt_Embedded/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- \
-sysroot ~/Program/Qt_Embedded/sysroot -opensource -confirm-license -make libs \
-prefix ~/Program/Qt_Embedded/Qt5Pi -extprefix ~/Program/Qt_Embedded/Qt5Pi -hostprefix ~/Qt5Pi -v -no-use-gold-linker

make -j 8
make install


失敗した場合は、全てを削除するために以下のコマンドを実行する。

git clean -dfx


Linux PC上で、QtをRaspberry Piにデプロイする。
ここでは、~/Program/Qt_Embedded/Qt5Piから上で設定したプレフィックスに全てを同期させる。

rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi


Linux PC上で、Qtのサンプルプログラムをビルドして動作確認を行う。
ビルドの完了後、実行ファイルをRaspberry Piにコピーする。

cd qtbase/examples/opengl/qopenglwidget

~/Program/Qt_Embedded/Qt5/bin/qmake

make -j 8

scp -P <ポート番号> -i <秘密鍵のフルパス> qopenglwidget <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/pi


Raspberry Pi上で、リンカがQtライブラリを見つけられるように、Raspberyy Piを更新する。
もし、サンプルの実行に問題がある場合は、qt5pi.confの代わりに00-qt5pi.confを使用して、適切な順序を導入する。

echo ~/Qt5Pi/lib | sudo tee /etc/ld.so.conf.d/qt5pi.conf
sudo ldconfig


Raspberry Pi上で、EGL / GLESライブラリを修正する。
Raspberry Piの/usr/lib/arm-linux-gnueabihfディレクトリには、MesaのlibEGLとlibGLESv2が存在する。
Qtソフトウェアは、/opt/vc/libディレクトリにあるライブラリではなく、これらを選択することになる。

これは、OpenGLのパフォーマンスを気にしないX11デスクトップソフトウェアには都合が良いが、
フルスクリーンの組み込みソフトウェアをウィンドウ化するには全く役に立たない。

オリジナルのファイルは、必ず、バックアップする。

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


また、見つからないシンボリックリンクも追加する。

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


以下の例では、Linux PC上で、Qtソフトウェアをダウンロードおよびビルドしている。
<Qtソフトウェアのサンプル>と<Qtのバージョン>はユーザ環境に合致するものを記述すること。

git clone git://code.qt.io/qt/<Qtソフトウェアのサンプル>.git -b <Qtのバージョン>
cd <Qtソフトウェアのサンプル>

~/Program/Qt_Embedded/Qt5/bin/qmake
make -j 8
make install


最後に、Qtソフトウェアをデプロイする。

rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" ~/Program/Qt_Embedded/Qt5Pi <Raspberry Piのユーザ名>@<Raspberry Piのホスト名またはIPアドレス>:/home/<Raspberry Piのユーザ名>/Qt5Pi