Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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