我正在尝试从Mac OS X 10.6上的最新Subversion构建Hercules。它使用iconv库进行字符翻译。 Hercules代码使用iconv_open(),iconv()和iconv_close()。这些例程也出现在10.6的系统库中,在这些名称下。只有一个问题:我收到libiconv_open(),libiconv()和libiconv_close()的链接失败。
我已经在我的系统中寻找名称从iconv *更改为libiconv *的地方,而没有找到任何东西。 Hercules代码中没有任何内容可以做到这一点。其他人可以在当前的OS X上建立良好状态。
我遗漏了一些简单的东西,但却找不到它。帮助
答案 0 :(得分:1)
我明白了:
checking for iconv_open in -liconv... yes
checking for iconv... yes
....
Undefined symbols:
"_libiconv_open", referenced from:
_SDL_iconv_string in SDL_iconv.o
_SDL_iconv_string in SDL_iconv.o
"_libiconv", referenced from:
_SDL_iconv in SDL_iconv.o
_SDL_iconv_string in SDL_iconv.o
"_libiconv_close", referenced from:
_SDL_iconv_string in SDL_iconv.o
_SDL_iconv_string in SDL_iconv.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [build/libSDL.la] Error 1
直到我删除了/ opt / local和/ usr / local中的另外两个副本(来自Macports和GNU包的原始版本)。然后它奏效了。
答案 1 :(得分:0)
Beeing有点晚了,在我的情况下,下面这行做了(MacOS X 10.8.4):
CFLAGS='-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/' LDFLAGS='-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/ -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/' ./configure
我必须覆盖autotools LDFLAGS,告诉配置脚本使用XCode SDK附带的库。