Help us understand the problem. What is going on with this article?

MacでC#のコードをコンパイルして実行する

More than 1 year has passed since last update.

手元でちょっとしたC#プログラムを実行したい

最近のエディタは再生ボタンを押すだけで自動でコンパイルして実行までを行ってくれるので、手動でコンソールからコマンドを叩いてコンパイルすることの必要性はほとんどありませんが、学習のためにサンプルのクラスだけ作って実行結果を見たい時などは有用そうなので、手動コンパイル実行の手順をまとめてみました。

この記事はその記録になります。

DOS/Vとかの頃からプログラマだった人には当たり前すぎる内容かもしれません。
しかし、最近のゆとり開発環境に慣れきった自分は手動コンパイルをやったことがなかったので実際に試して見ました。

といってもMONOを使えば簡単にC#のコードをコンパイルして実行できました。

C#のコンパイラ(Mono)をインストール

Monoとは

Ecma標準に準じた.NET Framework互換の環境を実現するためのオープンソースのソフトウェア、C#のコンパイラが含まれています

Mono, the open source development platform based on the .NET Framework, allows developers to build cross-platform applications with improved developer productivity.

C# Compiler - Mono’s C# compiler is feature complete for C# 1.0, 2.0, 3.0, 4.0 and 5.0 (ECMA). A good description of the feature of the various versions is available on Wikipedia.

インストール

公式のDownloadから.pkgファイルをダウンロードしてインストールする方法もありますが、Homebrewでもインストール可能です。ターミナルで下記のコマンドを実行してみてください。

Homebrewとは?
Mac OS Xオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システム

Terminal
$ brew install mono

MONOについて詳しく知りたい人

公式サイト

コードを書いて保存する

テキストエディタかvimコマンドなどでhello.csファイルを作成し、保存する

hello.cs
using System;
public class HelloWorld
{
    static public void Main ()
    {
        Console.WriteLine ("Hello Mono World");
    }
}

コンパイルと実行

hello.csを保存したディレクトリで下記を実行

Terminal
$ mcs hello.cs
#結果 -> [1]+  Done mcs hello.cs

$ mono hello.exe 
#結果 -> Hello Mono World

mcs:コンパイルコマンド
mono:実行コマンド

複数ファイルのコンパイル

ファイルが複数に分かれている場合はスペースで区切って並べて指定するか、*.csで一括指定出来ます。出力されるexeファイルの名前は-outオプションを使うことで変更可能です。
(フォルダが階層になっている場合とか外部ライブラリ使う場合どうすればいいかわかってません)

Terminal
$ mcs hello1.cs hello2.cs -out:hello.exe
$ mcs *.cs -out:hello.exe

参考にさせていただいたサイト

https://nkmk.github.io/blog/mac-c-sharp-compile/
http://qiita.com/omega999/items/6f65217b81ad3fffe7e6

matsuda_sinsuke
株式会社X-HACK CEO 兼 CTO エンジニアリングで世の中のあらゆる問題を解決したい プログラミングの学習サポートイベント主催しています https://x-hack.connpass.com
https://x-hack.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした