Uso de bibliotecas estáticas C / C ++ de aplicaciones iPhone ObjectiveC

¿Es posible tener una API de biblioteca estática en C, que usa C ++ internamente y ocultar esto a los usuarios de la biblioteca?

He escrito una biblioteca portátil de C ++ que deseo vincular estáticamente a una aplicación de iPhone.

Creé un proyecto Xcode usando la plantilla de la 'biblioteca estática' de Max OS X, y copié la fuente, además de escribir un wapper C (para tratar las excepciones) usando (extern "C").

Estoy tratando de usar la biblioteca generada (archivo .a) en otra aplicación de iPhone de Cocoa.

Todo funciona bien si uso extensiones (.mm) en el archivo ObjectiveC que llama y (.cpp) en la clase de implementación en la biblioteca.

Pero obtengo símbolos no resueltos al vincular cuando intento cambiar el archivo contenedor a una extensión (.c), a pesar de que todos los archivos de funciones de contenedor son solo funciones C.

Solo porque C ++ se usa internamente en una biblioteca, significa que externamente aún debe tratarse como un programa C ++. ¿No hay de todos modos para hacer cumplir esta abstracción?

Editar: Gracias por las respuestas

Había estado usando "C" externa, no estaba seguro de qué configuraciones se necesitaban en el proyecto de llamada. es decir. si la llamada proyectada requeriría saber si usó C ++ o podría ser ignorante y pensar que es una biblioteca puramente de C.

Parece que no puedo, y debo usar archivos (.mm) en mis clases de ObjectiveC.

Respuestas a la pregunta(4)

Su respuesta a la pregunta