- 追加された行はこの色です。
- 削除された行はこの色です。
*Mono [#c287603e]
[[Mono>+http://www.mono-project.com/Main_Page]]
Linuxでも動く.NET Framework実行/開発環境
コマンドは、mcs,gmcs,dmcsを使って、.csファイルをコンパイルする。
*dmcs [#sfb9b4cb]
Linuxでの.NET実行環境である[[Mono>Linux/Source/Mono]]のコマンド。
.NETのソースコード(.csファイル)をコンパイルし実行ファイルを生成する。
~
*インストール [#c333df39]
&size(16){&font(b){1. 事前準備};};
monoをビルドする前に、以下のライブラリを入れておく。
[[Libgdiplus>Linux/Source/Libgdiplus]]
他にもあるだろうが省略。
詳しくは、オフィシャルサイトのマニュアルを見る
*実行コマンド [#ud1ddf89]
&size(16){&font(b){1. $ mono hoge.exe};};
.NET実行ファイルをLinux上にて実行する。
Windowsで生成した実行ファイルを、Linux上で実行する事も可能。
※ただし、WindowsのkernelDLLを使用していないプログラムのみ。
~
&size(16){&font(b){2. ビルド・インストール};};
# tar jxvf mono-3.0.3.tar.bz2
# cd mono-3.0.3
# ./configure --prefix=/usr/local/mono --with-libgdiplus=/usr/local/libgdiplus/lib/libgdiplus.la
# make
# make install
&size(16){&font(b){2. $ mcs hoge.cs};};
.NET(C# 1.1)のコンパイルコマンドはこれを使う。
~
*設定 [#v5ab43ac]
&size(16){&font(b){I. pkgconfigの修正};};
稀に、pkgconfigの値がおかしくなる。
ので、“mono*.pc”の各ファイルを修正していく
&font(b){mono-2.pc};
#prefix=${pcfiledir}/../..
#exec_prefix=${pcfiledir}/../..
prefix=/usr/local/mono
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
includedir=${prefix}/include/mono-2.0
sysconfdir=${prefix}/etc
&font(b){mono-cairo.pc};
#prefix=${pcfiledir}/../..
#exec_prefix=${pcfiledir}/../..
prefix=/usr/local/mono
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
includedir=${prefix}/include
&font(b){mono-lineeditor.pc};
#prefix=${pcfiledir}/../..
prefix=/usr/local/mono
assemblies_dir=${prefix}/lib/mono-source-libs
Sources=${assemblies_dir}/getline.cs
&font(b){mono-nunit.pc};
#prefix=${pcfiledir}/../..
#exec_prefix=${prefix}
#libdir=${exec_prefix}/lib
prefix=/usr/local/mono
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
&font(b){mono-options.pc};
#prefix=${pcfiledir}/../..
prefix=/usr/local/mono
assemblies_dir=${prefix}/lib/mono-source-libs
Sources=${assemblies_dir}/Options.cs
&font(b){mono.pc};
#prefix=${pcfiledir}/../..
#exec_prefix=${pcfiledir}/../..
prefix=/usr/local/mono
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
includedir=${prefix}/include/mono-2.0
sysconfdir=${prefix}/etc
&font(b){monodoc.pc};
prefix=/usr/local/mono
#exec_prefix=${prefix}
exec_prefix=${prefix}/bin
libdir=/usr/local/mono/lib
sourcesdir=${libdir}/monodoc/sources
&font(b){monosgen-2.pc};
#prefix=${pcfiledir}/../..
#exec_prefix=${pcfiledir}/../..
prefix=/usr/local/mono
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
includedir=${prefix}/include/mono-2.0
sysconfdir=${prefix}/etc
&size(16){&font(b){3. $ gmcs hoge.cs};};
.NET(C# 2.0)のコンパイルコマンドはこれを使う。
mcsコマンドに2.0用のオプションを付けたものと同じ動作。
~
&size(16){&font(b){4. $ dmcs hoge.cs};};
.NET(C# 4.0)のコンパイルコマンドはこれを使う。
&font(b){dmcsコマンドは下位互換があるので、とりあえずこれを使っておけば1.1~4.5までコンパイル可能};
mcsコマンドに4.0用のオプションを付けたものと、“ほぼ”同じ動作。
~
*オプション [#n985b935]
&size(16){&font(b){I. -target:};};
コンパイル方法を指定する。クラスライブラリから動的ライブラリ(.dll)を生成する際とかに使用する。
DLL生成例
$ dmcs -target:library bar.cs
上のコマンドを略して書くと
$ dmcs -t:library bar.cs
~
&size(16){&font(b){II. -reference:};};
コンパイル時に使用する動的ライブラリを指定する。
使用例
$ dmcs -reference:bar.dll hoge.cs
上のコマンドを略して書くと
$ dmcs -r:bar.dll hoge.cs
~
&size(16){&font(b){III. -out:};};
生成するファイル(.exeや.dll)のファイル名を指定する。
使い方
$ dmcs -out:main.exe hoge.cs
$ ls
hoge.cs main.exe
複合して使うとこんな感じ
$ dmcs -out:main.exe -r:bar.dll hoge.cs