【发布时间】:2012-11-01 04:06:50
【问题描述】:
我正在尝试在 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 有太多依赖项,无法手动卸载它们,我不再需要它们了),但我仍然得到同样的错误。有什么想法吗?
【问题讨论】:
-
你是怎么编译的?使用 Xcode?生成文件?在命令行上调用链接器?在任何情况下,您都需要将
-liconv添加到iconv 库中的链接,还可能需要将-L/path/to/libiconv/folder添加到链接器搜索路径中。 -
我正在使用 makefile 进行编译。看起来它已经在使用 -liconv 进行链接了。我会尝试将路径添加到包含 libiconv 的文件夹中,看看是否有任何改变。