2015/04/04(土)FreeBSD 10.1 上における dovecot 2.2.x の構築
2017/10/12 18:54
FreeBSD 10.1 では、dovecot の構築の最終段階に入る際(実行形式ファイルの生成と思われる)、以下のようなエラーになり、コンパイルが出来ません。
dovecot 2.2.15 、dovecot 2.2.16 でこの現象を確認しています。
../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_begin': /usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:27: undefined reference to `libiconv_open' ../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_end': /usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:46: undefined reference to `libiconv_close' ../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_reset': /usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:53: undefined reference to `libiconv' ../lib-charset/.libs/libcharset.a(charset-iconv.o): In function `charset_to_utf8_try': /usr/local/src/dovecot-2.2.16/src/lib-charset/charset-iconv.c:76: undefined reference to `libiconv' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1このような場合は、src/lib-charset/Makefile.in を、dovecot 構築開始前に以下のように編集してから構築作業を始めると回避できます:
● 92行目付近
CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) -libcharset_la_LIBADD = +libcharset_la_LIBADD = $(LTLIBICONV) am_libcharset_la_OBJECTS = charset-iconv.lo charset-utf8.lo libcharset_la_OBJECTS = $(am_libcharset_la_OBJECTS)(先頭を- で示している行を削除し、先頭を + で示している行を挿入する)
参考: 2.2.16 link failure on FreeBSD 10.1, with patch