2010-12-12 61 views
0

Je continue d'avoir des problèmes avec les en-têtes de base tels que cmath. Il est le plus répandu lorsque vous utilisez des exemples de projets. Exemple:L'en-tête importe et inclut l'échec dans XCode, cmath, objc-class.h, etc.

#include <cmath> 

par exemple obtient un fichier non trouvé, même si je peux vérifier que le SDK j'utilise l'a:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/include/c++/4.2.1/tr1/cmath 

Je peux parfois contourner le problème en important directement dans le fichier, mais cela ne fonctionne pas toujours.

#include </usr/include/c++/4.2.1/cmath> 
+0

Tous les points de la balise C++, C ont été remplacés – pmg

Répondre

2

Quelle est l'extension de votre fichier de code source? .m ou .mm? Si c'est .m, le compilateur supposera que vous avez un fichier objectif-C normal, alors que .mm impliquerait un fichier objectif-C++. Si ce n'est pas un fichier .mm, le compilateur peut ne pas rechercher les inclusions C++.

+0

Cette occurrence la plus récente se trouve dans un fichier .hpp. J'ai déjà eu ces problèmes, et je pense que quelque chose n'est pas configuré correctement dans ma configuration de construction, sauf pour le fait que cela se produit avec une installation effacée de XCode et un projet propre. – akaru

+0

... bien que, quand j'ai renommé la classe qui incluait la classe .hpp ci-dessus pour avoir une extension .mm, ça a marché! Je n'ai pas réalisé que les directives du compilateur changeraient avec le changement d'extension. Merci! – akaru

+0

En guise de suivi: Cela fonctionne très bien avec un fichier Objective-C++ .mm. Cependant, j'utilise Interface Builder, et il ne veut pas jouer correctement avec mon contrôleur de vue étant un fichier .mm. Je reçois des erreurs segmentées du compilateur. Des conseils pour un tel cas d'utilisation? Je ne suis pas un à utiliser IB, mais l'interface utilisateur est assez complexe pour en tirer parti. – akaru