Usando bibliotecas estáticas C / C ++ no iPhone ObjectiveC Apps

É possível ter uma API de biblioteca estática C, que usa C ++ internamente e oculta isso aos usuários da biblioteca?

Escrevi uma biblioteca C ++ portátil que desejo vincular estaticamente a um aplicativo para iPhone.

Eu criei um projeto Xcode usando o modelo 'biblioteca estática' do Max OS X e copiei a fonte, além de escrever um wapper C (para lidar com exceções) usando (extern "C").

Estou tentando usar a biblioteca gerada (arquivo .a) em outro aplicativo Cocoa para iPhone.

Tudo funciona bem se eu usar extensões (.mm) no arquivo ObjectiveC de chamada e (.cpp) na classe de implementação na biblioteca.

Mas recebo símbolos não resolvidos na vinculação quando tento alterar o arquivo do wrapper para uma extensão (.c), mesmo que todos os arquivos de função do wrapper sejam apenas funções C.

Apenas porque o C ++ é usado internamente em uma biblioteca, isso significa que externamente ainda deve ser tratado como um programa C ++. De qualquer maneira, não existe para impor essa abstração?

Editar: Obrigado pelas respostas,

Eu estava usando extern "C", não tinha certeza sobre quais configurações eram necessárias no projeto de chamada. ie se a chamada projetada exigiria saber se ele usava C ++ ou poderia ser ignorante e acha que é uma biblioteca puramente em C.

Parece que não posso, e devo usar arquivos (.mm) nas minhas classes ObjectiveC.

questionAnswers(4)

yourAnswerToTheQuestion