在Mac OS X 10.6上编译SDL 2.0时出现libiconv问题

时间:2012-11-01 04:06:50

标签: c makefile sdl

我正在尝试在OS X 10.6上编译SDL 2.0,但我收到了这条消息:

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

我已在https://github.com/mxcl/homebrew/issues/894How to replace MacPort's libiconv with Mac's default 64-bit version?阅读了相关问题,看看其中任何一个是否有帮助。我卸载了MacPorts所有的东西,因为那两个似乎暗示这个问题与同一个库的多个版本有关(它安装的libiconv有太多的依赖关系来手动卸载它们,我不再需要它们了),但我仍然得到同样的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

因此,在卸载MacPorts副本后,我的计算机上仍然有两个不同的libiconv副本。一个在/ usr / lib中,另一个在/ usr / local / lib中。使用/ usr / lib中的一个进行编译产生了上面的错误,但是将-L / usr / local / lib添加到Makefile中的EXTRA_LDFLAGS变量上。

答案 1 :(得分:2)

我找到了一个简单的解决方案。配置SDL源时,只需添加2个参数:

./configure CPPFLAGS='-I/opt/local/include' LDFLAGS='-L/opt/local/lib'