Inclure & lt; string & gt; erreur de compilation non trouvée dans Xcode 4.2
Je suis arriver comprennent pas trouvé d'erreur de compilation dans XCode. J'ai une application iOS, projet que j'ai utiliser Objective-c et le c++ mélanger.
D'abord, j'ai créé un .h de fichier et un .fichier cpp dans mon projet ios. Ensuite, j'ai renommé le .fichier cpp .mm de fichier.
Voici mon .h fichier;
De test.h
#ifndef CalculatorDemo_TestLog_h
#define CalculatorDemo_TestLog_h
#include <string>
using namespace std;
class TestLog
{
private:
string logString;
public:
void Log(string logMessage);
};
#endif
De test.mm
#include "TestLog.h"
void TestLog::Log(string logMessage)
{
//this->logString->append(logMessage);
}
Ce qui me manque? Ai-je besoin d'ajouter std c++ de la bibliothèque de mes objectifs? Quelque chose lié à la Recherche d'en-Tête Chemins?
J'ai besoin juste d'utiliser le type string.
Merci beaucoup à l'avance
source d'informationauteur ilker Acar
Vous devez vous connecter pour publier un commentaire.
sélectionnez projet -> paramètre de construction -> apple LLVM compilateur 5.1 -> langue
Dans
Compile Sources As
changement deObjective-C++
Il y a une bizarrerie dans XCode. J'ai remarqué qu'il en 7.3. La plupart des projets reconnaître .mm les fichiers et la STL, alors qu'un projet que j'avais n'a pas. Le correctif a été que j'ai eu à cliquer en haut à gauche de l'icône de projet, puis cliquez sur Cibles > Phases de construction > Lien Binaire avec les Bibliothèques >, et ajouter dans AppKit.cadre. Ensuite, j'ai cliqué sur les Cibles > Build Settings > recherche sur "Compiler des Sources", et "Objective C++" sur toutes les colonnes. Ensuite, faire une Propre et puis une génération à partir du menu Produit. Cette compilé correctement ensuite. Ensuite, revenir en arrière pour que la Compilation des Sources à nouveau et revenir à la "Fonction du Type de Fichier" sur toutes les colonnes. Ensuite, cliquez sur créer à partir du menu Produit de nouveau. À ce point, il a compilé correctement et m'a permis d'utiliser la fonction de type de fichier" option, que j'aime le mieux.
Oh, et si vous faites du Cacao choses, n'oubliez pas d'ajouter l'en-tête suivant dans vos fichiers:
Et si je faisais de la ligne de commande des trucs, n'oubliez pas d'ajouter ce qui suit à la place du Cacao en-tête:
je crois que vous devez inclure le chemin d'accès complet à la bibliothèque. de même à dire "fondation" & "uiview" cadres de.
ou
et oui, assurez-vous que vous l'ajouter à la bibliothèque de votre cible.
Si j'ai eu ce problème avec le Cocoapods bibliothèque de Dérivation et aucune de ces solutions n'ont rien fait. Le problème était avec un fichier qui Cocoapods crée appelé un parapluie en-tête. Il est situé dans
<POD_NAME>/Support Files/<POD_NAME>-umbrella.h
. Le supprimer, et il devrait générer simplement des beaux.Maintenant, pour l'explication de pourquoi c'est nécessaire: le parapluie de l'en-tête est le mélange des deux C++ et Objective-C du code directement dans un en-tête qui est un gros no-no, apparemment, et finit par complètement casser le C++ importations. En l'enlevant (qui ne semble pas avoir d'effet?) ce conflit d'importation qui Cocoapods, sans le savoir créé ira loin.