#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