ついにmonoをやってみた。
前からやるやる言っていた、Linuxとかで.NETアプリケーションを走らせるオープンソースプロジェクトである、「mono」に触ってみました。
といっても、非常に単純な、よくある「Hello World」のプログラムを走らせただけ。
using System; class Program { static void Main( string[] args ) { Console.WriteLine( "Hello World\n" ); } }
「monoは実行環境」ということで、Windows側で書いて、コンパイルしたexeファイルをMac側に転送。
$ mono HelloWorld.exe
みたいな感じで実行したところ、ほんとに「Hello World」って出た。おー。拍手喝采ですよ(AC)。
で、「Windows Formはー?」って友達に言われたので、同じくWindows側でフォームにボタンを1個貼り付けて、クリックしたらメッセージボックスで「Hello mono!」と言うようなコードをかき、コンパイル。でMacに転送して同じくmonoコマンドを用いて実行してみましたが、今度はエラーがばーっと。UI系のコード(Visual Style)とかいけないのかなって思って、Visual Styleを有効にする1行を消してみたが、特に変らず。
で、エラーメッセージを読んだところ、どうやらメソッドが見つかりませんよ的な事が書かれているので、monoのオフィシャルサイトに行き(遅い!)、いろいろ読む。WindowsFormsに関するページを見つけ(http://www.mono-project.com/WinForms)、その中のGetting Started Guide(http://www.mono-project.com/WinForms_Getting_Started_Guide)を読んでみた。するとmonoの他に、「libgdiplus」というのが必要で、こっからダウンロード。
しかし、その「libgdiplus」ってのをインストールしたんですが、結局今のところWindowsFormを利用したアプリケーションは動作せず。Getting Started Guideに書いてあるサンプルコードをそのままコピーして、Mac上でコンパイル(mcs/gmcsコマンドを用いる)してみたが、結果は同じ感じ(Macに何か入っていないみたい)。
そのご、ちょいちょいWebサイトなどを見ていると、GUIアプリケーションを実行する場合はX11が必要だと言うことが発覚。MacPortsを利用するために、Apple Developers Connectionから落としてきたXCodeから、X11SDKはインストールしたんですが、X11自体は「Macのインストールディスクを参照してください。」みたいな感じだったので、インストールしていなかったのです。
しかしこのMacはもらい物なので、インストールディスクない。某学類誌編集室にTigerのインストールディスクが落っこちていたのを知ってるんだけど、すぐに出てくるわけがない。あ、MacPortsでX11インストールすれば良いんでね? <- いまここ
// あした統合テストするアプリケーション、まだ書き上がってない。いそげ。