Raspberry Pi 3でのQtの紹介

ラズベリー用のプログラムを作成する必要があると、作成者のすべての便利さを備えた素晴らしいQTフレームワークを使用していました。 この記事は、ライブラリを構築し、ハードウェア上で直接コンパイルとデバッグを簡単に行えるように環境を設定することに関する知識を構築する試みです。



画像





まず、ラズベリーのシステムのイメージをダウンロードします。 私の場合、raspbian jessieが手元にありました。 他のディストリビューションは、 サイトから簡単にダウンロードできます 。 アセンブリ段階で作業しやすくするために、ホームディレクトリにディレクトリを作成します。



mkdir ~/pi_cross/
      
      





システムのイメージをそこにドロップすると、原則として、すぐに自分自身にマウントできます。後で便利になります。



 sudo mount -o loop,offset=70254592 ~/pi_cross/raspberry-embed.iso /mnt/rasp-pi-rootfs.
      
      





このオフセットを計算するには、次のようにします。



このように:
 elesar@elesar ~ $ fdisk -l ~/pi_cross/raspberry-embed.iso Disk /home/elesar/pi_cross/raspberry-embed.iso: 16.0 GB, 16021192704 bytes 255 heads, 63 sectors/track, 1947 cylinders, total 31291392 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb0358c95 Device Boot Start End Blocks Id System /home/elesar/pi_cross/raspberry-embed.iso1 8192 137215 64512 c W95 FAT32 (LBA) /home/elesar/pi_cross/raspberry-embed.iso2 137216 31291391 15577088 83 Linux
      
      





2番目の部分の終わりを見て、セクターのサイズ137216 * 512 = 70254592を掛けます。



次のステップは、Qtソースをコピーすることです:



 git clone git://code.qt.io/qt/qt5.git
      
      





そして、新しくダウンロードしたディレクトリに移動します:



 cd qt5
      
      





実行する:



 ./init-repository
      
      





必要なサブモジュールを再開します。 ここがコーヒーが必要な場所です。 私のジャンプには少なくとも30分かかりました。 次に、クロスプラットフォームのツールチェーンが必要です。 ここからプルできます:



 wget https://www.dropbox.com/s/sl919ly0q79m1e6/gcc-4.7-linaro-rpi-gnueabihf.tbz
      
      





パパにそれを解凍します。 まだライブラリが必要です:



 sudo apt-get install ia32-libs
      
      





ただし、64ビットバージョンのOSを使用している場合のみ。 すべてがダウンロードされ、コーヒーの新しい部分が近づいているので、ツールチェーンから便利なスクリプトを実行できます。



 sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/pi_cross/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc
      
      





シンボリックリンクを構成します。 これで、Qtの構築を開始できます。 コンフィギュレーターに移動します。



 cd ~/pi_cross/qt5/qtbase
      
      





そしてする:



 ./configure -qt-xcb -openssl -securetransport -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/pi_cross/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -qreal float -make libs -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi
      
      





端末は次のようにフレンドリーに応答します:



画像



サポートされているオプションを列挙します。 収集するもの:



 make -j 4 sudo make install
      
      





これは最長のステージです。 私のマシンは約1時間バイトでガサガサ音を立てました。 すべてがほぼ準備完了です。 排気アセンブリのインストールは、事前にマウントしたディスクイメージです。 アンマウントしてSDカードに入れる必要があります。SDカードはMalinkaに挿入する必要があり、オンにすることができます。 (ラズベリーの作業台の写真)。



システムと小さな構成を読み込んだ後、Creatorの構成を開始します。 最初に、/ usr / local / qt5pi / bin / qmakeフォルダーに、Frankensteinのように構築されたものをqmakeに伝えます。



画像



gcc-4.7-linaro-rpi-gnueabihf / bin / arm-linux-gnueabihf-gccをコンパイラーとして指定します。



画像



デバイスを作成し、パスワードとアドレスを設定します:



画像



適切な名前で新しいキットを作成します。



画像



sysrootで、新しくマウントされたイメージを示します。 唯一の問題はデバッガーです。 私はリナロからそのようなものとして働くことをきっぱりと拒否したので、私は完璧に動作するGDB-Multiを滑らせました。 それだけです! これで、新しいプロジェクトを作成するときに、新しいキットが利用可能になりました。



画像



デバイスで直接起動してデバッグするには、.proファイルに数行を追加する必要があります。



 target.path = /usr/bin INSTALLS += target TARGET = Name_On_Target
      
      





それらは、アプリケーションがインストールされるパスとその名前を示します。



結論として、このメソッドのマイナス点に注意してください-たとえば、新しいライブラリのインストールなど、ターゲットの変更については、sysrootとしてマウントするためにSDカードからイメージを削除する必要があります。そうしないと、コンパイラはそれらを認識しません。 ご静聴ありがとうございました。 そして、はい、彼らはあなたをバイパスします。



All Articles