libiconv не связан с проектом iOS - PullRequest
25 голосов
/ 19 сентября 2011

Я пытаюсь скомпилировать 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 к «Связать двоичные файлы с библиотеками», но это не меняет ошибок вообще.

Есть идеи, что здесь может быть не так? Я пытался Google эту ошибку, но я не могу найти информацию о том, как сделать ссылку в libiconv. Поскольку это часть iOS SDK, вы думаете, что мне не нужно его самому компилировать?

Ответы [ 2 ]

65 голосов
/ 02 апреля 2013

Вам необходимо добавить libiconv.dylib через «add framework». SRC доступен из этого обсуждения.

17 голосов
/ 19 сентября 2011

В качестве дополнительного подтверждения того, что библиотека включена в вашу цель, выберите библиотеку в списке файлов на левой панели XCode (при условии, что вы добавили ее в свою цель / проект, вы должны увидеть структуру, указанную в разделе frameworks)и покажите представление «Помощник редактора» в правой панели («Просмотр» -> «Помощник редактора» -> «Показать помощник редактора»).

Затем, когда соответствующая библиотека выбрана слева, вы увидите «Целевое членство» для этогоlib показана в виде списка флажков справа.

Вы должны увидеть список целей приложения, и флажок должен быть установлен для этой цели.

Вы можете попробовать снять и перепроверить его, чтобы подтолкнутьэто в ваш проект?

...