libiconv没有链接到iOS项目

sar*_*dne 25 xcode linker iconv ios

我正在尝试将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
Run Code Online (Sandbox Code Playgroud)

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

我已经尝试添加libiconv.dylib"Link Binary with Libraries",但它根本不会改变错误.

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

shu*_*ren 67

您需要通过"添加框架"添加libiconv.dylib.SRC 可从此讨论中获得.

  • 从Xcode 7开始,这个lib现在是"libiconv.tbd". (6认同)

Sni*_*ips 17

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

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

您应该看到列出的App Target,并且应该检查该目标的复选框.

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