Использование статических библиотек C / C ++ из приложений iPhone ObjectiveC

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

Я написал переносимую библиотеку C ++, которую я хотел бы статически связать с приложением iPhone.

Я создал проект XCode, используя шаблон «статической библиотеки» Max OS X, и скопировал исходный код, а также написал C-ваппер (для обработки исключений), используя (extern «C»).

Я пытаюсь использовать сгенерированную библиотеку (файл .a) в другом приложении Cocoa iPhone.

Все работает хорошо, если я использую расширения (.mm) в вызывающем файле ObjectiveC и (.cpp) в классе реализации в библиотеке.

Но я получаю неразрешенные символы при связывании, когда пытаюсь изменить файл оболочки на расширение (.c), даже если все файлы функций оболочки являются только Си-функциями.

Просто потому, что C ++ используется внутри библиотеки, означает ли это, что внешне он все еще должен рассматриваться как программа C ++. Разве нет в любом случае для обеспечения этой абстракции?

Редактировать: Спасибо за ответы,

Я использовал extern «C», я просто не был уверен в том, какие конфигурации нужны в вызывающем проекте. то есть. если предполагаемый вызов потребует знать, использует ли он C ++ или может быть невежественным, и думать, что это чисто библиотека C.

Казалось бы, я не могу, и я должен использовать (.mm) файлы на моих классах ObjectiveC.

Ответы на вопрос(4)

Ваш ответ на вопрос