iconv例程被转换为libiconv_名称,并且无法在OS X上链接

时间:2010-12-28 13:41:23

标签: macos iconv

我正在尝试从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上建立良好状态。

我遗漏了一些简单的东西,但却找不到它。帮助

2 个答案:

答案 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附带的库。