Je développe une application pour obtenir la liste des logiciels installés dans Mac OS X 10.5 ou supérieur. Le programme est créé en utilisant objective-C++ (c, C++, obj-c). Chaque fois que je lance le programme, il plante.Le programme créé objectif C++ se bloque
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//My part of coding
[pool drain]; // This is the crash prone place
return 0;
}
Ici, je suis fournissant des détails de réglage du projet:
fichier extention: .mm
compilés comme: c objectif ++
objc GC: non pris en charge
bibliothèques utilisées : libxml2.2.dylib, Foundation Framework
cible platfom: x86_x64
développement: Mac OS X 10.6.8, Xcode 3.2.6
Type d'application: application console
Je ne sais pas d'autre option besoin de mettre à compilez l'objectif C++. Toute aide à ce sujet serait appréciée.
oui. Je l'ai déjà mis sdk de base 10,5
Voici la trace du journal:
Le Debugger a quitté avec le statut 0. [session a commencé à 2011-10-03 22:29:25 0530.] GNU gdb 6.3.50-20050815 (version Apple gdb-1515) (Sat 15 jan 08:33:48 UTC 2011) Copyright 2004 Free Software Foundation, Inc. GDB est un logiciel libre, couvert par la GNU General Public License, et vous êtes invités à le changer et/ou à en distribuer des exemplaires sous certaines conditions. Tapez "show copy" pour voir les conditions. Il est absolument pas de garantie pour GDB. Tapez "show warranty" pour plus de détails. Ce GDB a été configuré comme "x86_64-apple-darwin" .tty/dev/ttys003 Chargement du programme dans le débogueur ... Programme chargé. run [Passage au process 2973] Exécution en cours ... Signal reçu du programme: "EXC_BAD_ACCESS". sharedlibary applique-load-rules all (gdb)
J'ai une autre question. Est-il valide de libérer l'objet obj-c dans C++ class destructor? {* Myobjcinterface myobjc = [[myobjcinterface alloc] init] comme celui-ci
maclasse :: myclasss(); }
myclass :: ~ myclass() {[version myobjc]; }
Vous devez définir votre SDK de base sur 10.5. –
Pouvez-vous publier le message d'erreur que vous recevez avec le code, cela facilitera le suivi. –