Mono β1のインストール手順と簡単なコンパイル方法。

§1 ダウンロードしたパッケージ

パッケージ配布元のURL: Mono Beta 1 ちなみに、[]内の数字はパッケージのサイズ。

  • [Mono Runtime and C# compiler]
    • mono-core-0.91-0.ximian.6.3.i386.rpm [4.2M]
    • mono-core-devel-0.91-0.ximian.6.3.i386.rpm [511.5k]
    • mono-runtime-devel-0.91-0.ximian.6.3.i386.rpm [14.0M]
  • [Dependencies]
    • icu-2.6.1-1.ximian.6.5.i386.rpm [228.8k]
    • libicu-devel-2.6.1-1.ximian.6.5.i386.rpm [462.5k]
    • libicu26-2.6.1-1.ximian.6.5.i386.rpm [4.4M]
  • [Cairo and its dependencies]
    • cairo-0.1.22-0.ximian.6.2.i386.rpm [72.2k]
    • cairo-devel-0.1.22-0.ximian.6.2.i386.rpm [885.5k]
    • libpixman-0.1.1-0.ximian.6.0.i386.rpm [36.3k]
    • libpixman-devel-0.1.1-0.ximian.6.0.i386.rpm [133.1k]
  • [Mono Stack]
    • mono-posix-0.91-0.ximian.6.3.i386.rpm [16.2k]
  • [Optional locales]
    • mono-locale-cjk-0.91-0.ximian.6.3.i386.rpm [229.8k]

§2 パッケージのインストール

次の順でパッケージをインストール

  1. libicu26-2.6.1-1.ximian.6.5.i386.rpm
  2. libicu-devel-2.6.1-1.ximian.6.5.i386.rpm
  3. icu-2.6.1-1.ximian.6.5.i386.rpm
  4. libpixman-0.1.1-0.ximian.6.0.i386.rpm
  5. libpixman-devel-0.1.1-0.ximian.6.0.i386.rpm
  6. cairo-0.1.22-0.ximian.6.2.i386.rpm
  7. libpixman-devel-0.1.1-0.ximian.6.0.i386.rpm
  8. mono-posix-0.91-0.ximian.6.3.i386.rpm, mono-core-0.91-0.ximian.6.3.i386.rpm
  9. mono-runtime-devel-0.91-0.ximian.6.3.i386.rpm

8.のインストールは同時に行う必要がある↓

rpm -Uvh mono-posix-0.91-0.ximian.6.3.i386.rpm \ mono-core-0.91-0.ximian.6.3.i386.rpm

§3 コンパイラのテスト

$ mcs --about
The Mono C# compiler is (C) 2001, 2002, 2003 Ximian, Inc.
 
The compiler source code is released under the terms of the GNU GPL
 
For more information on Mono, visit the project Web site
   http://www.go-mono.com
 
The compiler was written by Miguel de Icaza, Ravi Pratap and Martin Baulig

こんな感じで表示されればOK

§4 コンパイル・実行

ソースコードを書く。

[HelloWorld.cs]
using System;

public class HelloWorld
{
  public static void Main()
  {
    Console.WriteLine( "Hello, world!" );
  }
}

コンパイルは次のようにする。

$ mcs HelloWorld.cs
Compilation succeeded

うまく行けば二行目のようなメッセージが表示される。同時に、HelloWorld.exeが作成される。 実行するときは↓のような感じで。

$ mono HelloWorld.exe
Hello, world!

Mono β1でWindows Formsを使ってウィンドウを表示させる。

§5 ダウンロードしたパッケージ

Mono Beta 1のパッケージダウンロードページより、以下のパッケージをダウンロードする。

  • [Microsoft .NET stack]
    • mono-drawing-0.91-0.ximian.6.3.i386.rpm [247.0k]
    • libgdiplus-0.3-0.ximian.6.1.i386.rpm [70.6k]
    • libgdiplus-devel-0.3-0.ximian.6.1.i386.rpm [2.1M]
    • mono-window-forms-0.91-0.ximian.6.3.i386.rpm [526.2k]
    • [Preview components]
      • wine-20040408-1rh9winehq.i386.rpm [9.3M]
      • winelib-0.2-0.ximian.6.2.i386.rpm [26.5k]

§6 パッケージのインストール

次の順にインストール。

  1. libgdiplus-0.3-0.ximian.6.1.i386.rpm
  2. libgdiplus-devel-0.3-0.ximian.6.1.i386.rpm
  3. mono-drawing-0.91-0.ximian.6.3.i386.rpm
  4. wine-20040408-1rh9winehq.i386.rpm
  5. winelib-0.2-0.ximian.6.2.i386.rpm
  6. mono-window-forms-0.91-0.ximian.6.3.i386.rpm

§7 コード例・コンパイル

ソースコード。

[WinForms.cs]
using System;
using System.Drawing;
using System.Windows.Forms;

public class Test : Form
{
  private Button button;
  private CheckBox checkBox;
  private RadioButton radioButton;
  private Label label;
  private PictureBox pictureBox;

  public Test()
  {
    this.ClientSize = new Size( 640, 480 );
    this.Text = "Windows forms";

    button = new Button();
    button.Location = new Point( 10, 10 );
    button.Size = new Size( 100, 25 );
    button.Text = "Click me";
    button.Click += new EventHandler( Button_Click );

    label = new Label();
    label.Location = new Point( 10, 40 );
    label.Size = new Size( 200, 20 );
    label.Text = "Windows Forms";

    radioButton = new RadioButton();
    radioButton.Location = new Point( 300, 10 );
    radioButton.Size = new Size( 200, 20 ); 
    radioButton.Text = "Radio button";
    radioButton.Checked = true;

    checkBox = new CheckBox();
    checkBox.Location = new Point( 300, 50 );
    checkBox.Size = new Size( 200, 20 );
    checkBox.Text = "Check box";
    checkBox.Checked = true;

    pictureBox = new PictureBox();
    pictureBox.Location = new Point( 30, 120 );
    pictureBox.Size = new Size( 240, 180 );
    pictureBox.Paint += new PaintEventHandler( PictureBox_Paint );

    Controls.AddRange( new Control[]
      {
        button,
        label,
        radioButton,
        checkBox,
        pictureBox
      }
      );
  }

  public static void Main()
  {
    Application.Run( new Test() );
  }

  private void Button_Click( object sender, EventArgs e )
  {
    MessageBox.Show( "clicked", "test" );
  }

  private void PictureBox_Paint( object sender, PaintEventArgs e )
  {
    e.Graphics.DrawRectangle( Pens.Red, new Rectangle( 10, 10, 50, 50 ) );

    e.Graphics.DrawRectangle( Pens.Blue, new Rectangle( 40, 40, 120, 80 ) );

    e.Graphics.DrawString( "Windows forms", Control.DefaultFont,
                             Brushes.Green, new PointF( 30.0f, 20.0f ) );
  }
}

コンパイル・実行方法。

$ mcs -r:System.Windows.Forms -r:System.Drawing WinForms.cs
Compilation succeeded
$ mono WinForms.exe

実行時スクリーンショット。