概要
ラズベリーパイ(Raspberry Pi 3 Model B) で実行するソフトウェアの
ビルド環境を構築した話です。
ようはgccのクロスコンパイラのインストールのことです
インストールしたコンパイラにパスを通して、
ビルド時に実行できるようにするところまでの手順を
本記事にまとめました。
ラズパイ向けソフトウェアのクロスコンパイルに挑戦する方は
参考にしてみてください。
なお、今回インストールするgccバージョンはgcc 4.8.3です。
ビルド環境構築方法詳細
目的 ~ラズパイ向けソフトウェアのクロスコンパイル~
やりたいことは、
PC上の開発環境でビルドした(クロスコンパイルした)ソフトウェアを
ラズパイで実行することです。
まずは、Linuxをビルドすることを想定しています。
詳しくはまた別の機会に説明しようと思いますが、
Linuxのビルド時には、ビルドコマンド(make)にクロスコンパイラを指定します。
そのため、本作業のゴールは、
インストールされたクロスコンパイラをパスで指定して
実行できるようにすることとします。
実施内容 ~クロスコンパイラのインストール方法の解説~
PC上の開発環境にクロスコンパイラをインストールしました。
開発環境は以前に検討したVM上のUbuntu 20.04を使うようにしています。
ラズパイ (Raspberry Pi 3 Model B) のプロセッサはBC2837というもので、
Cortex-A53が4基搭載されているので、
arm64向けのgccをインストールする必要があるのだと理解しています。
下記のコマンドを実行すると、
ホームディレクトリのtools以下にクロスコンパイラを含むビルドツールがインストールされます。
cloneの後ろに” –depth 1 “を入れるとダウンロード時間が短くなります。
$ git clone https://github.com/raspberrypi/tools ~/tools
$ cd tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
$ ls
arm-linux-gnueabihf-addr2line arm-linux-gnueabihf-gfortran
arm-linux-gnueabihf-ar arm-linux-gnueabihf-gprof
arm-linux-gnueabihf-as arm-linux-gnueabihf-ld
arm-linux-gnueabihf-c++ arm-linux-gnueabihf-ld.bfd
arm-linux-gnueabihf-c++filt arm-linux-gnueabihf-ld.gold
arm-linux-gnueabihf-cpp arm-linux-gnueabihf-ldd
arm-linux-gnueabihf-ct-ng.config arm-linux-gnueabihf-nm
arm-linux-gnueabihf-dwp arm-linux-gnueabihf-objcopy
arm-linux-gnueabihf-elfedit arm-linux-gnueabihf-objdump
arm-linux-gnueabihf-g++ arm-linux-gnueabihf-pkg-config
arm-linux-gnueabihf-gcc arm-linux-gnueabihf-pkg-config-real
arm-linux-gnueabihf-gcc-4.8.3 arm-linux-gnueabihf-ranlib
arm-linux-gnueabihf-gcc-ar arm-linux-gnueabihf-readelf
arm-linux-gnueabihf-gcc-nm arm-linux-gnueabihf-size
arm-linux-gnueabihf-gcc-ranlib arm-linux-gnueabihf-strings
arm-linux-gnueabihf-gcov arm-linux-gnueabihf-strip
arm-linux-gnueabihf-gdb
ここにあるarm-linux-gnueabihf-gccがコンパイルに使用するgccコンパイラです。
$ ./arm-linux-gnueabihf-gcc -v
組み込み spec を使用しています。
COLLECT_GCC=arm-linux-gnueabihf-gcc
・・・省略・・・
gcc バージョン 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03)
コンパイラを実行可能であることがわかります。
また、gccバージョンは4.8.3であることがわかりますね。
下のコマンドでコンパイラへのパスを通します。
$ export PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
これでパスを通したら、
arm-linux-gnueabihf-gccコマンドが実行できるようになります。
$ arm-linux-gnueabihf-gcc -v
組み込み spec を使用しています。
COLLECT_GCC=arm-linux-gnueabihf-gcc
・・・省略・・・
gcc バージョン 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03)
先ほど実行ファイルを直接指定して実行したときと同様の結果になりましたね。
終わりに
今回は、
ラズパイ(Raspberry Pi 3 Model B) で実行するソフトウェアの
ビルド環境を構築した話をしました。
Linuxのビルドコマンド(make)にクロスコンパイラを指定して実行できるように、
インストールしたgccにパスを通せたところまでを記事にしました。
最後にお知らせです。
ラズベリーパイ(Raspberry Pi)をリモート経由でご利用いただける、
仮想ラズパイサービスをご提供しています。
ご興味持たれた方はこちらもご覧ください。
コメント