Inclure simplement l’en-tête SDL provoque une erreur de l’éditeur de liens

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.