Возможно ли иметь C статический библиотечный API, который использует С++ внутри и скрывает это от пользователей библиотеки?
У меня есть переносная библиотека С++, которую я хочу статически связывать с приложением iPhone.
Я создал проект Xcode с использованием шаблона статической библиотеки Max OS X и скопировал источник через, а также написал C wapper (для обработки исключений), используя (extern "C" ).
Я пытаюсь использовать сгенерированную библиотеку (файл .a) в другом приложении Cocoa iPhone.
Все работает хорошо, если я использую (.mm) расширения для вызывающего файла ObjectiveC и (.cpp) для класса реализации в библиотеке.
Но я получаю неразрешенные символы при связывании, когда я пытаюсь изменить файл-оболочку на расширение (.c), хотя все файлы файлы-оболочки являются только функциями C.
Просто потому, что С++ используется внутренне в библиотеке, означает ли это, что извне он все равно должен рассматриваться как программа на С++. Разве не в силах обеспечить эту абстракцию?
Изменить: Спасибо за ответы,
Я использовал extern "C", я просто не знал, какие конфигурации там нужны в вызывающем проекте. то есть. если запрошенный вызов потребует знать, использовал ли он С++ или может быть невежественным, и подумайте, что это просто библиотека C.
Казалось бы, я не могу, и я должен использовать (.mm) файлы в своих классах ObjectiveC.