【问题标题】:Compiling SDL Games on Mac在 Mac 上编译 SDL 游戏
【发布时间】:2010-12-29 03:47:40
【问题描述】:

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

【问题讨论】:

    标签: macos sdl


    【解决方案1】:

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

    【讨论】:

    • 他们是,这与我的预期非常不同,解决方案是:gcc -I/Library/Frameworks/SDL.framework/Headers -I/System/Library/Frameworks/OpenGL.framework /Headers MyProgram.c SDLmain.m -framework SDL -framework Cocoa -framework OpenGL
    【解决方案2】:

    对我来说解决方案如下:

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

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多