たてたてよこよこまるかいてちょん

組み込み関連の情報を共有するためのブログです

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が古すぎるからだめ、とのこと。なるほど。

記事のLicense このブログの記事は特に断りのない限り、引用部分を除いて、以下の CC-BY 4.0でライセンスします。 https://creativecommons.org/licenses/by/4.0/deed.ja ただし、ブログ内にあるコードは、特に断りのない限り、CC-BY 4.0またはMITLicense で利用できるものとします。