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