我正在尝试在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,但我不想这样做,因为我有许多依赖于它的端口。