J’allais migrer mon jeu de glut à sdl.
Cela fonctionne parfaitement, mais je voulais utiliser certaines fonctionnalités de SDL.
Je vais donc dans les propriétés de mon projet, sous l’en-tête de cibles, je clique sur le programme à comstackr, les phases de construction, le lien binary avec les bibliothèques, ajout de SDL.framework.
La même chose que j’ai faite pour OpenGL.framework et GLUT.framework
Cependant, lorsque j’ajoute: #include
une erreur d’erreur #include
à l’éditeur de liens #include
lorsque j’essaie de générer:
Undefined symbols for architecture x86_64: "_main", referenced from: __start in crt1.o (maybe you meant: _SDL_main) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Googler conduit simplement à quelques résultats, mais pas de véritables explications.
SDL utilise une macro pour renommer votre main(..)
et doit fournir la sienne propre, généralement implémentée dans SDLmain.m
. Il doit être fourni avec le fichier SDL.framework.
Lorsque vous téléchargez le framework à partir d’ici http://www.libsdl.org/download-1.2.php Lisez le ReadMeDevLite.txt
dans le dossier devel-lite
.
Une autre description http://www.meandmark.com/sdlopenglpart2.html
J’ai trouvé que lorsque j’ai l’erreur:
Symboles non définis pour l’architecture x86_64:
“_main”, référencé à partir de:
entrée / début implicite pour l’exécutable principal
(peut-être que vous vouliez dire: _SDL_main)
J’ai oublié d’aller à Projet -> Construire les phases -> Comstackr les sources et append SDLMain.m à la liste. Cela a résolu le problème pour moi tout de suite.