La création d'un Objectif-C++ Statique de la Bibliothèque dans Xcode

J'ai donc développé un moteur pour l'iPhone avec lequel je voudrais construire un couple de différents jeux. Plutôt que de copier et coller les fichiers du moteur à l'intérieur de chaque partie du répertoire du projet, j'avais un moyen de lien vers le moteur de chaque jeu, donc si j'ai besoin de faire un changement pour elle je n'ai qu'à le faire une fois. Après reeding autour d'un peu, il semble que les bibliothèques statiques sont la meilleure façon de le faire sur l'iPhone.

J'ai créé un nouveau projet appelé Squelette et copié tous mes fichiers du moteur. J'ai utilisé cette guide pour créer une bibliothèque statique, et j'ai importé la librairie dans un projet appelé Sélecteur de champs. Cependant, lorsque j'ai essayé de compiler le projet, Xcode, a commencé à se plaindre au sujet de certains C++ structures de données que j'ai mis dans un fichier appelé ControlScene.mm. Voici mes erreurs de build:

  "operator delete(void*)", referenced from:
-[ControlScene dealloc] in libSkeleton.a(ControlScene.o)
-[ControlScene init] in libSkeleton.a(ControlScene.o)
__gnu_cxx::new_allocator<operation_t>::deallocate(operation_t*, unsigned long)in libSkeleton.a(ControlScene.o)
__gnu_cxx::new_allocator<operation_t*>::deallocate(operation_t**, unsigned long)in libSkeleton.a(ControlScene.o)
"operator new(unsigned long)", referenced from:
-[ControlScene init] in libSkeleton.a(ControlScene.o)
__gnu_cxx::new_allocator<operation_t*>::allocate(unsigned long, void const*)in libSkeleton.a(ControlScene.o)
__gnu_cxx::new_allocator<operation_t>::allocate(unsigned long, void const*)in libSkeleton.a(ControlScene.o)
"std::__throw_bad_alloc()", referenced from:
__gnu_cxx::new_allocator<operation_t*>::allocate(unsigned long, void const*)in libSkeleton.a(ControlScene.o)
__gnu_cxx::new_allocator<operation_t>::allocate(unsigned long, void const*)in libSkeleton.a(ControlScene.o)
"___cxa_rethrow", referenced from:
std::_Deque_base<operation_t, std::allocator<operation_t> >::_M_create_nodes(operation_t**, operation_t**)in libSkeleton.a(ControlScene.o)
std::_Deque_base<operation_t, std::allocator<operation_t> >::_M_initialize_map(unsigned long)in libSkeleton.a(ControlScene.o)
"___cxa_end_catch", referenced from:
std::_Deque_base<operation_t, std::allocator<operation_t> >::_M_create_nodes(operation_t**, operation_t**)in libSkeleton.a(ControlScene.o)
std::_Deque_base<operation_t, std::allocator<operation_t> >::_M_initialize_map(unsigned long)in libSkeleton.a(ControlScene.o)
"___gxx_personality_v0", referenced from:
___gxx_personality_v0$non_lazy_ptr in libSkeleton.a(ControlScene.o)
___gxx_personality_v0$non_lazy_ptr in libSkeleton.a(MenuLayer.o)
"___cxa_begin_catch", referenced from:
std::_Deque_base<operation_t, std::allocator<operation_t> >::_M_create_nodes(operation_t**, operation_t**)in libSkeleton.a(ControlScene.o)
std::_Deque_base<operation_t, std::allocator<operation_t> >::_M_initialize_map(unsigned long)in libSkeleton.a(ControlScene.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

Si quelqu'un pourrait offrir de mieux comprendre les raisons de ces problèmes se produisent, je l'apprécierais.

OriginalL'auteur LandonSchropp | 2010-05-17