2017-06-15 1 views
0

Récemment, j'ai un problème. Le clang peut traduire Objective-C en C++ utiliser -rewrite-objc. Donc, je pense, la première étape. clang compile Objective-C en C++. Et puis compiler seulement peut utiliser le compilateur C++. Est-ce que c'est comme ça? clang traduire d'abord Objective-C en C++ avec runTime, puis compiler vers le code machine?-rewrite-objc et Objective-C en clang

Répondre

3

-rewrite-objc existe pour traduire ObjC en C++ afin qu'il puisse être compilé dans Visual Studio. C'est toujours la sémantique d'Objective-C et vous avez toujours besoin de l'exécution d'objectif-c. Il ne convertit pas magiquement Objective-C à l'architecture C++ OO. Cela ressemble beaucoup plus à l'implémentation d'Objective-C en tant qu'extension de pré-compilateur. Tout repose sur le fait que les classes Objective-C ne sont que des structures C avec un comportement de fantaisie et que les appels de méthode Objective-C peuvent tous être convertis en appels objc_msgSend().

+0

Merci. Mais moi aussi, que savoir, dosez Clang traduire OC en code machine directement au lieu de C++ en premier lors de la compilation? – merito

+0

Il le traduit en code C++ (surtout C, vraiment) avant la compilation; spécifiquement, avant que le compilateur de studio visuel prend le dessus, typiquement. – bbum

+0

désolé de vous déranger. Dans cette [question] (https://stackoverflow.com/questions/22234485/how-does-objective-c-compile), la première réponse me confond. Donc, dosez tout IR C/C++ en direct lors de la compilation OC? – merito