#author("2024-09-02T04:07:27+00:00","default:iseki","iseki")
** Mono [#nb5ce5ca]
- Linux/UNIXで動作する MS .NET 実行環境


*** Links [#x6c4b516]
- http://www.mono-project.com/
- %%See also [[NAnt]]%%


** Install [#l4cb4675]
*** 事前準備 (pkgconfig) [#v3b51531]
 # cd /usr/local/lib
 # ln -s /usr/lib/pkgconfig .

*** Cario (Option) [#jd318473]
- http://www.cairographics.org/

 # yum -y install pixman-devel
 # yum -y install libXext-devel
 
 # wget www.cairographics.org/releases/cairo-1.14.0.tar.xz
 # xzcat cairo-1.14.0.tar.xz |tar xfv -
 # cd cairo-1.14.0
 # ./configure
 # make
 # make install


*** libgdiplus [#v87f4da6]
- http://download.mono-project.com/sources/libgdiplus/

 # wget download.mono-project.com/sources/libgdiplus/libgdiplus-3.8.tar.gz
 # zcat libgdiplus-3.8.tar.gz |tar xfv -
 # cd libgdiplus-3.8
 # ./configure
 # make 
 # make install


*** Mono [#i96b53b7]

 $ wget download.mono-project.com/sources/mono/mono-3.12.0.tar.bz2
 $ bzcat mono-3.12.0.tar.bz2 | tar xfv -
 $ cd mono-3.12.0
 $ ./configure --with-libgdiplus=/usr/local/lib/libgdiplus.la
 # make
 # make install


* Tips [#w3d00de4]
*** Version [#s5bba143]

**** 5.16.1.0 [#ed79fa82]
- これ以降のバージョンは,証明書からCNを取り出す際に証明書の構造によっては例外を起こす.
-- 少なくとも 6.12.0.182 ではこのバグは快活されている.

**** 6.8.0.123 [#q05c0ca4]
- CentOS6 でコンパイルできる限界



* OLD [#ha2ba867]

** Install [#oc3b9721]

*** 事前準備 (pkgconfig) [#y0d355ca]
 # cd /usr/local/lib
 # ln -s /usr/lib/pkgconfig .

*** glib (GTK+ と GNOME のコアライブラリ) [#w14b0d16]
- http://www.icewalkers.com/Linux/Software/515980/GLib2.html
- libgdiplus-2.4 をコンパイルするには glib-2.2.3 以上が必要.

 $ zcat glib-2.20.1.tar.gz| tar xfv -
 $ cd glib-2.20.1
 $ ./configure
 $ make
 # make install
 # ldconfig

**** glib-2.26.0 でコンパイルエラー [#bade32d4]
 /usr/bin/msgfmt -o test.mo ./de.po; \
        /bin/mkdir -p de/LC_MESSAGES; \
        cp -f test.mo de/LC_MESSAGES
 ./de.po:15: キーワード "msgctxt" は知りません
 ./de.po:15:8: parse error
 /usr/bin/msgfmt: 2 個の致命的エラーが見つかりました
 cp: cannot stat `test.mo': そのようなファイルやディレクトリはありません
-- [[gettext-0.17>gettext]] 以上をインストールする.
-- ftp://ftp.gnu.org/gnu/gettext/


*** libgdiplus (GDIの拡張ライブラリ) [#jc6a6323]
- http://www.mono-project.com/Libgdiplus
- コンパイルに必要な開発パッケージ
--libpng-devel
--libtiff-devel
--libexif-devel
--libjpeg-devel
--freetype-devel and freetype2-devel
--giflib-devel  (libungif-devel)
--libX11-devel  (XOrg-devel)
--fontconfig-devel  (XOrg-devel)

 $ bzcat libgdiplus-2.4.tar.bz2| tar xfv -
 $ cd libgdiplus-2.4
 $ ./configure
 $ make
 # make install
 # vi /etc/ld.so.conf
 # ldconfig

**** libgdiplus-2.10.9 でコンパイルエラー [#seecf408]
 ../libtool: line 852: X--tag=CC: command not found
 ../libtool: line 885: libtool: ignoring unknown tag : command not found
 ../libtool: line 852: X--mode=compile: command not found
 .............
- autoconf 2.68 以上をインストールし,configure の前に ''autoreconf -fiv'' を実行する.

 /usr/local/bin/autoreconf -fiv
 ./configure
 make clean
 make



*** Mono [#be93fd16]
 $ bzcat mono-2.4.tar.bz2 | tar xfv -
 $ cd mono-2.4
 $ ./configure --with-libgdiplus=/usr/local/lib/libgdiplus.la
 # mv /usr/local/lib/mono /usr/local/lib/mono-
 # make
 # make install


** Trouble Shooting  [#p6887ed8]
**** mono-3.4.0 で make install の失敗 [#ha5fa1b4]
- mcs/tools/xbuild/targets/Microsoft.Portable.Common.targets が無いので作る.
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
    <Import Project="..\Microsoft.Portable.Core.props" />
    <Import Project="..\Microsoft.Portable.Core.targets" />
 </Project>


**** mono-3.2.3 のコンパイル (wth x86 CPU) でリンクエラー [#s26c056f]
- 外部参照未解決: __sync_add_and_fetch_4, __sync_val_compare_and_swap_4 
- CPU の機能関連のエラーらしい
- 3.2.1 ならOK


**** C# のコンパイルでエラーが出るとき [#eec77e98]
- PKG_CONFIG_PATHを指定する
 export PKG_CONFIG_PATH=/usr/lib/pkgconfig/

**** Mono2.0 のコンパイルで System.Text.EncoderFallbackBuffer のエラー [#e8ba37e9]
- /usr/local/lib/mono を削除,あるいはリネームする.
~
~

**** バージョンによっては /usr/local/lib/pkgconfig (/usr/lib/pkgconfig) の内容がおかしくなる [#pe6492ac]
- Mono が /usr/local/lib/pkgconfig にデータを作る.おまけに内容が変.
 # cd /usr/lib/pkgconfig
 # ln -s /usr/local/lib/pkgconfig/* .
 # vi /usr/local/lib/pkgconfig/mono.pc    prefix を修正.他の mono-* も変更.
 .......

- mono.pc
 #prefix=${pcfiledir}/../..
 #exec_prefix=${pcfiledir}/../..
 prefix=/usr/local
 exec_prefix=${prefix}/bin
 libdir=${prefix}/lib
 includedir=${prefix}/include/mono-1.0
 .......

- mono-nunit.pc
 #prefix=${pcfiledir}/../..
 #exec_prefix=${prefix}
 #libdir=${exec_prefix}/lib
 prefix=/usr/local
 exec_prefix=${prefix}/bin
 libdir=${prefix}/lib
 .......

- mono-cairo.pc
 #prefix=${pcfiledir}/../..
 #exec_prefix=${pcfiledir}/../..
 prefix=/usr/local
 exec_prefix=/usr/local/bin
 libdir=${prefix}/lib
 includedir=${prefix}/include
 .......

- 2.4 辺りで追加になった PCファイル
-- mono-lineeditor.pc
-- mono-options.pc
-- monodoc.pc


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS