libiconv没有链接到iOS项目

时间:2011-09-18 22:21:35

标签: ios xcode linker iconv

我正在尝试将MailCore编译到我正在制作的iOS应用程序中,并且链接器一直在抱怨libiconv没有链接。至少这是我认为它正在抱怨的。这是它吐出来的:

Undefined symbols for architecture i386:
  "_iconv", referenced from:
      _mail_iconv in libmailcore.a(charconv.o)
  "_iconv_open", referenced from:
      _charconv in libmailcore.a(charconv.o)
      _charconv_buffer in libmailcore.a(charconv.o)
  "_iconv_close", referenced from:
      _charconv in libmailcore.a(charconv.o)
      _charconv_buffer in libmailcore.a(charconv.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

(这是为模拟器构建的。为我的iPhone构建同样的错误,但是s/i386/armv7/)。

我尝试将libiconv.dylib添加到“Link Binary with Libraries”,但它根本不会更改错误。

知道这里有什么问题吗?我一直在尝试谷歌这个错误,但我找不到任何有关如何链接在libiconv的信息。既然它是iOS SDK的一部分,你会认为我不需要自己编译它吗?

2 个答案:

答案 0 :(得分:64)

您需要通过“添加框架”添加libiconv.dylib。 SRC是available from this discussion.

答案 1 :(得分:17)

作为额外确认目标中包含lib,请在Xcode左侧窗格的文件列表中选择lib(假设您已将其添加到目标/项目中,您应该看到框架下列出的框架) ,并在右侧窗格中显示“助理编辑器”视图(“查看” - >“>助理编辑器 - >”显示助理编辑器“。

然后,在左侧选择相关的lib后,您将看到该lib的“Target Membership”显示为右侧的复选框列表。

您应该看到App Target Listed,并且应该检查该目标的复选框。

您可以尝试取消选中并重新检查它,将其轻推到您的项目中吗?