libiconv は、JIS, EUC, SJIS, Unicode などの文字コード変換をするライブラリです。
関連するページはこちら、
MacOSX & Cygwin on Windows のソフトの事
manpage より
namazu、gnuplot、octave 等のビルドに必用です。
OSX には、標準で含まれます。が、http://www.gnu.org/software/libiconv/ によると、gettext との依存関係がインストール上の最大の留意点なのに、OSX には、gettext がインストールされていません。これでは、OSX 標準の libiconv のビルドレベルが判かりません。
そこで、gnu libiconv をインストールする亊にしました。
Cygwin ディストリビューションには含まれています。
MacOSX の場合
$ ./configure $ make $ sudo make install
この時の依存関係は、
$ otool -L /usr/local/bin/iconv /usr/local/bin/iconv: /usr/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
この後、LibExpat ,GetText をインストールして、再び、
$ ./configure --with-libiconv-prefix=/usr/local --with-libintl-prefix=/usr/local $ make $ sudo make install
するだけ。因に、依存関係は、下のとおり。
$ otool -L /usr/local/bin/iconv /usr/local/bin/iconv: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.0.0) /usr/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.1.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
又、2007-10-28 現在、バージョンは
$ iconv --version iconv (GNU libiconv 1.11) Copyright (C) 2000-2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Bruno Haible.
10.4 の時の、依存関係は、下のとおり。
$ otool -L /usr/local/bin/iconv /usr/local/bin/iconv: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 368.28.0) /usr/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.1.0) /usr/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.5.1)
又、2007-06-16 現在、バージョンは
$ iconv --version iconv (GNU libiconv 1.11) Copyright (C) 2000-2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Bruno Haible.
最初の頃、強制的に Apple 由来の iconv を外していたんですが、匿名の方からお叱りのメールを頂きましたので、正攻法でやります。12
特に無し。
ヘルプから
$ iconv --help
Usage: iconv [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]
or: iconv -l
Converts text from one encoding to another encoding.
Options controlling the input and output format:
-f ENCODING, --from-code=ENCODING
the encoding of the input
-t ENCODING, --to-code=ENCODING
the encoding of the output
Options controlling conversion problems:
-c discard unconvertible characters
--unicode-subst=FORMATSTRING
substitution for unconvertible Unicode characters
--byte-subst=FORMATSTRING substitution for unconvertible bytes
--widechar-subst=FORMATSTRING
substitution for unconvertible wide characters
Options controlling error output:
-s, --silent suppress error messages about conversion problems
Informative output:
-l, --list list the supported encodings
--help display this help and exit
--version output version information and exit
Report bugs to <bug-gnu-libiconv@gnu.org>.
1. 最初、下の様にしたんだけど、rosetta 経由のアプリケーションが動かない。
mv libiconv.2.dylib libiconv.2.dylib.orig ln -s /usr/local/lib/libiconv.2.dylib libiconv.2.dylib
どうやら、libiconv.2.dylib を直接リンクしている apple 由来のアプリの為に、これは残したほうが良さそう。
こんな事しなくても、DYLD_LIBRARY_PATH、LD_LIBRARY_PATH、LIBRARY_PATH をうまく使って設定できるのかな?
2.「その後、Apple 由来の libiconv、iconv を外します。」で次のように書いてました。
$ su $ cd /usr/lib $ mv libiconv.dylib libiconv.dylib.orig $ ln -s /usr/local/lib/libiconv.dylib libiconv.dylib $ mv libiconv.la libiconv.la.orig $ ln -s /usr/local/lib/libiconv.la libiconv.la $ cd /usr/include $ mv iconv.h iconv.h.orig $ ln -s /usr/local/include/iconv.h iconv.h $ cd /usr/bin $ mv iconv iconv.orig $ ln -s /usr/local/bin/iconv iconv