gccのインストール

今回はラズパイに開発に必要なCコンパイラ(gcc)をインストールします。

まずは、ラズパイにログインします。

$ ssh pi@192.168.0.13
pi@192.168.0.13's password: 
Linux raspberrypi 6.6.20+rpt-rpi-v6 #1 Raspbian 1:6.6.20-1+rpt1 (2024-03-07) armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jul 21 10:38:03 2024 from 192.168.0.28

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

ログインするとプロンプトが変わるので、プロンプトで確認すれば十分ですが、下記のコマンドを入力するとARMのマシンにログインしていることが確認できます。

pi@raspberrypi:~ $ uname -m
armv6l

ちなみに、armvl6はラズパイシリーズのインストールしたOSイメージによって異なる点に注意してください。
なお、開発用PCにはubuntuを導入しましたが、同じようにコマンドを入力すると

$ uname -m
x86_64

と表示されます。

build-essentialのインストール

debian系で開発をする人たちはgccなどをチマチマとインストールすることはしません。(私目線ですがw)
build-essential は、開発に必要なのビルドツール群を提供しているパッケージでaptコマンドを使用して簡単に導入できます。

$ sudo apt install build-essential
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
build-essential is already the newest version (12.9).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

というように、今回インストールしたRaspberry Pi OSでは、すでにインストール済みであるとのメッセージが出力されました。
まぁそれだけ便利ということで

gccの動作確認

C言語といえば定番の「hello World!」を出力してみましょう。

pi@raspberrypi:~ $ nano test.c

エディタは好みのものを使用してください。CUIで操作するので慣れが必要ですので頑張ってみましょう。
メジャーなエディタは「vi」や「Emacs」ですが、Debianでは「nano」と呼ばれるエディタが標準でインストールされており、個人的には「nano」推しですw。
ソースコードのファイル名は「test.c」とします。エディタを起動し下記を入力します。

#include <stdio.h>

int main(void)
{
    printf("Hello World!\n");
    return 0;
}

コンパイルを行います。

pi@raspberrypi:~ $ gcc test.c

コンパイルした結果は、指定しなければ「a.out」というファイル名になります。
それでは、実行してみましょう。

pi@raspberrypi:~ $ ./a.out
Hello World!

無事に出力できたでしょうか?
また、コンパイルして出来たファイル形式を確認しておきましょう。
ファイル形式を確認するには「file」コマンドを使用します。

pi@raspberrypi:~ $ file a.out
a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=1ca586791fff9677b5657b809a93556d10794b54, for GNU/Linux 3.2.0, not stripped

出力したファイル形式はちゃんと「ARM」となっていますか?
間違って開発用PCで作成しないように注意してください。

ここまでで、アプリケーションの追加は完了です。
次回からはBuildrootの導入を行うのですが、ここまで作成したSDイメージを保存しておきたいので、もう一枚SDカードを用意してお待ちください。