2011-09-05 4 views
2

Je suis sûr que la réponse est simple mais je suis confronté au problème suivant ...importation, l'utilisation et compiler un seul C++ fichier d'en-tête dans un projet ios objectif-c

Je veux utiliser ce C++ fichier d'en-tête CAAudioUnitOutputCapturer.h (il n'y a qu'un fichier .h) dans un projet ios objectif-c xcode.

Quelqu'un pourrait-il me dire comment éliminer les erreurs de compilation et me donner un exemple d'utilisation dans un contexte Objective-C?

Modifier, j'ai eu cette erreur:

CAAudioUnitOutputCapturer.h:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CAAudioUnitOutputCapturer' 
+0

Quelles sont les erreurs? Comment peut-on vous dire comment éviter les erreurs si vous ne dites pas quelles sont les erreurs? –

+0

Modifié avec erreur de compilation – lefakir

Répondre

4

Pour le moment, le compilateur essaie de construire votre fichier en tant que pur Objective C, ce qui est à l'origine de ces erreurs. Renommez le fichier que vous compilez en myFile.mm (notez l'extension mm). Cela forcera le compilateur à le considérer comme un code Objective C++, ce qui est dû à l'en-tête que vous incluez.

1

Tous les fichiers qui utilisent les classes CAAudioUnitOutputCapturer doivent être Objective-C++ au lieu d'Objective-C. Vous faites cela en utilisant une extension .mm au lieu de .m.

Dans les fichiers .mm, vous pouvez mélanger des classes Objective-C et C++.

Here est quelques informations concernant Objective-C++.

1

Les fichiers que vous utilisez le CAAudioUnitOutputCapturer.h doit être soit objectif fichiers C++ (extension par défaut .mm), ou C++ fichiers (extension .cpp ou .cc). Si vous essayez de les utiliser dans un fichier Objective C (extension .m), vous obtiendrez des erreurs, car le compilateur attend l'Objective C, pas le C++. J'espère que vous avez le fichier objet ou le fichier de bibliothèque qui contient le code (compilé) pour la classe CAAudioUnitOutputCapturer, sinon votre fichier .h est inutile.

Questions connexes