J'ai eu des problèmes pour combiner C ++ et Objective-C ensemble dans le développement d'une application iPhone. J'ai eu une bibliothèque tierce à utiliser dans l'application. J'ai eu un plan d'utiliser C ou C ++ pour envelopper la bibliothèque, puis utiliser l'objectif-c pour l'appeler. Après avoir terminé la classe avec C ++, j'ai eu des problèmes pour l'utiliser dans l'objectif-c. Y a-t-il un exemple de code? Merci.
dans le fichier tête de l'objectif-c. J'écris p> et dans le fichier mm, j'écris: p> est-il écrit? P> < / p>
3 Réponses :
Renommez simplement votre fichier pour avoir une extension Pour mélanger le code C ++ avec code Objective-C, vous aurez besoin Compilateur Objective-C ++ .
Xcode par défaut compose .mm code> au lieu de
.m code>. p>
.m code> avec compilateur objectif-c et
.mm code> avec objectif-c ++ un. P>
en Xcode Il existe un drapeau pour compiler tous les fichiers comme objectif-c ++. Je l'ai utilisé pour compiler d'énormes bibliothèques C ++ dans des programmes IOS. P>
Si vous regardez les "paramètres de construction", il existe une place "des sources de compiler comme". Il existe un menu déroulant là où vous pouvez sélectionner Objective-C ++. Dans la ligne de commande Clang / GCC, je pense que c'est "-X Objective-C ++". P>
La taille n'a pas d'importance ce que vous avez à faire est de changer simplement de modifier l'extension à .mm de la classe qui contenant du code C ++ ...
@HIKMATKHAN Ce que je suggère que je suggère de renommer parfois des fichiers, en particulier dans les projets Big (MultiPerson), ce n'est pas vraiment une option.
@Kevlar Si vous regardez les "paramètres de construction", il existe une place écrite "des sources de compiler comme". Il existe un menu déroulant là où vous pouvez sélectionner Objective-C ++. À Clang je pense que c'est "-x objectif-c ++"
appeler C ++ code du code Objective-C implique la fin de votre fichier avec .mm (au lieu de .m) de sorte que le compilateur Objective-C ++ soit utilisé. P>
Ce compilateur peut comprendre à la fois C ++ et objectif-c. P>
En d'autres termes, le compilateur Objc ++ vous permet de mettre le code C ++ directement dans Méthodes de l'objectif-C, et inversement. P> blockQuote>
Jetez un oeil à cocoa_with_carbon_or_cpp Exemple et Stratégies d'utilisation de C ++ dans les projets de l'objectif-C (et inversement) article. P>
Il semble que vous utilisiez effectivement le fichier
.mm code>, alors quel est le problème? Vous ne nous avez pas dit quel problème vous faites face.
Il dit qu'il y a une erreur de compilation, alors je me demandais s'il y a quelque chose de mal dans la syntaxe.
L'avez-vous corrigé? Sinon, il suffit de préciser ce que "une erreur de compilation" est.
Merci, ce n'est pas encore réparé. Mais la raison en est qu'un fichier de bibliothèque dans le projet ne dispose pas de version I386 qui est nécessaire dans la compilation du simulateur. Je cherchais un.