Компиляция SDL игр на Mac - PullRequest
       22

Компиляция SDL игр на Mac

0 голосов
/ 22 декабря 2009

У меня есть Mac, и я пытаюсь скомпилировать свои проекты. Стандарт в вики: g ++ sdl.cpp -lSDLmain -lSDL -framework Какао, похоже, не работает, но возвращает, что не может найти -lSDL и -lSDLmain. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 26 июня 2013

Для меня решение выглядит следующим образом:

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 

Теперь, когда объектный файл создан, мы можем использовать это решение:

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

В этом решении предполагается, что в каталоге '/ Library / Frameworks /' установлены платформы SDL_image, SDL_mixer, SDL_ttf и SDL_net.

Поскольку это трудно сделать вручную, а решение немного грязное, лучше просто написать скрипт, который сделает все это за вас.

Флаг '-I' (заглавная i) указывает компилятору, где искать заголовки. Флаг '-L' указывает компилятору, где искать библиотеки. Флаг '-l' (нижний регистр L) сообщает компилятору, какие библиотеки использовать. Флаг '-framework' в основном ведет себя как флаг '-l' (строчная буква L).

0 голосов
/ 22 декабря 2009

Ты понимаешь значение флагов? Компоновщик ищет библиотеки SDL и SDLmain, они установлены на вашем компьютере?

...