fu7mu4’s diary

はてなダイアリーから移転しました。

ChezSchemeはmacOSの標準のlibiconvではビルドとおらない?

ChezSchemeを macOSでビルドした。

./configure --threads
make

すると、

gcc -m64 -Wpointer-arith -Wall -Wextra -Werror -O2 -I/opt/X11/include/ -o ../bin/ta6osx/scheme ../boot/ta6osx/kernel.o ../boot/ta6osx/main.o -liconv -lm -lncurses -L/usr/lib
Undefined symbols for architecture x86_64:
"_libiconv", referenced from:
_s_iconv_to_string in kernel.o
_s_iconv_from_string in kernel.o
"_libiconv_close", referenced from:
_s_iconv_close in kernel.o
"_libiconv_open", referenced from:
_s_iconv_open in kernel.o
ld: symbol(s) not found for architecture x86_64

というエラーが返る。/usr/lib/libiconv.2.4.0.dylib ではだめなもよう。
そこでふと、macport版のlibiconvではどうかと

LDFLAGS="-L/opt/local/lib" ./configure --threads
LDFLAGS="-L/opt/local/lib" make

とするとうまくいった。

あとで調べると、Error linking libiconv on OSX によると、macOS標準のlibiconvが古すぎるからだめ、とのこと。なるほど。