Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

monoをつかってRaspberryPiでC#プロジェクトをやる その1:環境構築

プロジェクトで組み込むべきソフトウェア資産として、C#製のモノがきました。
……C#、ほぼ3年ぶりです。
今だから言いますが、あれは炎上案件でしたね……。
shuzo-kino.hateblo.jp

さて気を取り直して。
今回のターゲットはWindowsではなくRaspberry Pi
OSもCPUも違うモンですが、最近のC#は大分進んでいて、クロスプラットフォーム環境としてmonoちうものが用意されています。

monoをつかうと、C#製Win用プロジェクトをそのままRaspberry Piで使える……こともあるようです。
構造が単純で装置依存の低いやつなら、無改変でいける可能性があります。
すくなくとも、オフィシャルにはクロスプラットフォームを謳っています。

実際のところ

リポジトリ追加。
ubuntuのキーサーバーを指定してますが、Raspberry OSでも大丈夫です。

$ sudo apt install apt-transport-https dirmngr gnupg ca-certificates
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
$ echo "deb https://download.mono-project.com/repo/debian stable-raspbianbuster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
$ sudo apt update

導入。
285Mbyteもあるので、まったり待ちましょう。
容量もさることながら、ビルドもそこそこ負荷があります。

$ sudo apt install mono-devel


test.csというファイルにhello worldをかいてみます。

using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        Console.WriteLine ("Hello Mono World");
    }
}

コンパイル

$ csc test.cs
Microsoft (R) Visual C# Compiler version 3.6.0-4.20224.5 (ec77c100)
Copyright (C) Microsoft Corporation. All rights reserved.

$

実行。拡張子がexeで不安ですけど、monoを噛ませればちゃんと動いてくれます。

$ mono test.exe
Hello Mono World