在macosx上编译C++ SDL

Aga*_*ara 2 c++ macos sdl g++

我按照以下指南在Mac OSX 8.4上安装了SDL2:https: //stackoverflow.com/a/12473310

我不得不将前缀"/ home/user/SDL"更改为"/ Users/agargara/programming/SDL /",因为/ home只是OSX 8.4中的占位符 - 没有权限在该目录中创建文件夹黑客攻击.

我能够使用以下代码编译测试文件:

g++ Main.cpp -o main -I/Users/agargara/programming/SDL/include/SDL2 -L/Users/agargara/programming/SDL/lib -lSDL2main -lSDL2 -framework OpenGL -framework Cocoa
Run Code Online (Sandbox Code Playgroud)

但是,运行会出现以下错误:

dyld: Library not loaded: /home/user/SDL/lib/libSDL2-2.0.0.dylib
  Referenced from: /Users/agargara/programming/SDL-tut/01_hello_SDL/./hello
  Reason: image not found
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)

我认为这是因为某处,库仍在尝试使用不正确的前缀/ home/user /.我需要更改什么来解决这个问题?

Aga*_*ara 6

好吧,随着更多的摆弄,我很幸运,并回答了我自己的问题!我需要下载OSX的开发库并将其复制到/ Library/Frameworks /,而不是从源代码编译.

完成后,正确的编译方法就是:

g++ Main.cpp -o main -I/Library/Frameworks/SDL2.framework/Headers -framework SDL2 -framework Cocoa
Run Code Online (Sandbox Code Playgroud)