Как установить "C ++ Standard Library Type" в "static" в Xcode 4? - PullRequest
0 голосов
/ 27 января 2012

У меня есть проект Xcode 3.2 (sqlite3 с icu), который собирается правильно, и я пытаюсь воссоздать его в Xcode 4. Я получаю ошибки ссылки:

Undefined symbols for architecture x86_64:
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for icu_48::SortKeyByteSinkin libicui18n.a(ucol.ao)
      ...
  "___gxx_personality_v0", referenced from:
      Dwarf Exception Unwind Info (__eh_frame) in libicui18n.a(uregex.ao)
      ...

У меня было это однажды, с Xcode 3.2. Затем, изменив настройку сборки Linking-> C++ Standard Library Type на static (по умолчанию dynamic). Если я правильно понимаю документы, фактический флаг - STANDARD_C_PLUS_PLUS_LIBRARY_TYPE.

Но я не могу найти эту настройку в Xcode 4!

EDIT

Основной модуль (sqlite3) - это C, а библиотека ICU - C ++, предположительно с объявлениями C. Я могу собрать sqlite3 нормально, проблема возникает, когда мне нужно связать библиотеку ICU.

1 Ответ

0 голосов
/ 27 января 2012

Ваше приложение может быть C, но похоже, что libicui18n включает C ++.

Что произойдет, если вы переименуете свой main.m в main.mm?Это должно привести к тому, что он будет связан со стандартной библиотекой C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...