2009-12-22 8 views
0

J'ai un mac et j'essaie de compiler mes projets. Le standard sur le wiki: g ++ sdl.cpp -lSDLmain -lSDL -framework Cocoa ne semble pas fonctionner, il retourne qu'il ne peut pas trouver -lSDL et -lSDLmain. Toute aide serait grandement appréciée.Compiler des jeux SDL sur Mac

Répondre

0

Comprenez-vous la signification des drapeaux? L'éditeur de liens recherche les bibliothèques SDL et SDLmain, sont-elles configurées sur votre machine?

+0

Ils étaient et c'était très différent de ce à quoi je m'attendais, la solution est: gcc -I/Bibliothèque/Frameworks/SDL.framework/En-têtes -I/System/Bibliothèque/Frameworks/OpenGL.framework/En-têtes MyProgram.c SDLmain.m -framework SDL -framework Cocoa -framework OpenGL – dejai

0

Pour moi, la solution est la suivante:

g++ -c -I/Library/Frameworks/SDL.framework/Headers -I. -I.. -I/Library/Frameworks/SDL_image.framework/Headers -I/Library/Frameworks/SDL_mixer.framework/Headers -I/Library/Frameworks/SDL_ttf.framework/Headers -I/Library/Frameworks/SDL_net.framework/Headers -I/usr/local/include/SDL -I/usr/local/include/ ./lesson20.cpp -o ./lesson20.o 

Maintenant que le fichier objet a été créé, nous pouvons utiliser cette solution:

g++ -L/usr/local/lib -I/Library/Frameworks/SDL.framework/Headers -I. -I.. -I/Library/Frameworks/SDL_image.framework/Headers -lSDLmain -I/Library/Frameworks/SDL_mixer.framework/Headers -I/Library/Frameworks/SDL_ttf.framework/Headers -I/Library/Frameworks/SDL_net.framework/Headers -framework SDL -framework SDL_image -framework Cocoa -framework SDL_mixer -framework SDL_ttf -framework SDL_net -framework OpenGL lesson20.o -o Lesson 

Cette solution suppose que vous avez le SDL_image, SDL_mixer, SDL_ttf et les frameworks SDL_net installés dans le répertoire '/ Library/Frameworks /'.

Puisqu'il est difficile d'essayer à la main, et que la solution est un peu compliquée, il vaut mieux simplement écrire un script pour faire tout cela pour vous.

L'indicateur '-I' (capital i) indique au compilateur où rechercher les en-têtes. L'indicateur '-L' indique au compilateur où chercher les bibliothèques. L'indicateur '-l' (L minuscule) indique au compilateur quelles bibliothèques utiliser. Le drapeau '-framework' se comporte essentiellement comme un drapeau '-l' (minuscule L).

Questions connexes