在Mac上编译SDL游戏

时间:2009-12-22 15:27:23

标签: macos sdl

我有一台mac,我正在尝试编译我的项目。维基上的标准:g ++ sdl.cpp -lSDLmain -lSDL -framework Cocoa似乎没有工作,它返回它无法找到-lSDL和-lSDLmain。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你明白旗帜的含义吗?链接器正在寻找库SDL和SDLmain,它们是否在您的机器上设置?

答案 1 :(得分:0)

对我来说,解决方案如下:

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)标志。