1

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

我错过了一些简单的东西,但就是找不到。帮助?

4

2 回答 2

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 包的原始构建)。然后它起作用了。

于 2011-02-08T05:28:04.140 回答
0

有点晚了,在我的情况下,以下行做到了(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 附带的库。

于 2013-08-11T09:05:48.723 回答