我正在尝试在 Mac OS X Lion 中编译 GCC 4.5.1。
我对 libiconv 有疑问。首先它抱怨架构 x86_64 的未定义符号,它们是:_iconv、_iconv_open 和 _iconv_close。我发现 MacPorts 版本的 libiconv 将它们重命名为:_libiconv、_libiconv_open 和 _libiconv_close。所以我链接到 /usr/lib 中的 Mac OS 本机 libiconv 而不是 /opt/local/lib 中的 MacPorts 库。
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_convert_using_iconv in libcpp.a(charset.o)
__nl_find_msg in libintl.a(dcigettext.o)
(maybe you meant: __cpp_destroy_iconv, _cpp_init_iconv )
"_iconv_close", referenced from:
__cpp_destroy_iconv in libcpp.a(charset.o)
__cpp_convert_input in libcpp.a(charset.o)
__nl_free_domain_conv in libintl.a(loadmsgcat.o)
"_iconv_open", referenced from:
_init_iconv_desc in libcpp.a(charset.o)
__nl_init_domain_conv in libintl.a(loadmsgcat.o)
但是,在这样做之后,我尝试从头开始重建它(清理和一切),但后来它在不同的地方抱怨未定义的符号,但这次是 _libiconv、_libiconv_open 和 _libiconv_close。
Undefined symbols for architecture x86_64:
"_libiconv", referenced from:
_identifier_to_locale in libbackend.a(pretty-print.o)
"_libiconv_close", referenced from:
_identifier_to_locale in libbackend.a(pretty-print.o)
"_libiconv_open", referenced from:
_identifier_to_locale in libbackend.a(pretty-print.o)
有什么想法可以解决这个问题吗?我找到了一些从 MacPorts 卸载 libiconv 的解决方案,但我不想这样做,因为我有很多端口取决于它。