当我编译SDL2的框架时,我没有任何问题,除非我编译SDL2_mixer.framework。
以下是编译器的代码,我使用rpath到自定义位置/目录,因为我希望能够在没有编译器错误的计算机之间移动它,并且它可以工作,尽管我之前提到它有问题SDL2中的混音器(音频)框架。
echo "OSX/Darwin"
FLAGS=""
FLAGS+="-framework OpenGL -framework GLUT "
FLAGS+="-F $(pwd)/SDL_runner/SDL_frameworks/OSX/ "
FLAGS+="-framework SDL2 "
FLAGS+="-framework SDL2_mixer "
FLAGS+="-framework SDL2_image "
FLAGS+="-framework SDL2_ttf "
FLAGS+=-"rpath $(pwd)/SDL_runner/SDL_frameworks/OSX/ "
GCC编译器代码,$ compilecpp $ compilec和$ compileo只是目录和子目录中的所有cpp,o和hpp文件。这三个变量也没有引起问题。
g++ -Wall $compilecpp $compilec $compileo -o run -DMAC $FLAGS
包括。
#ifdef MAC
#include <SDL2/SDL.h>
#include <SDL2_mixer/SDL_mixer.h>
#endif
最后我从中得到的错误只与SDL2_mixer.framwork有关,即表示图像不存在,即使我以与其他框架完全相同的方式实现它。
dyld: Library not loaded: @executable_path/../Frameworks/SDL2.framework/
Versions/A/SDL2
Referenced from: /Users/jordan/Documents/GaleFoxGames/graphic_render/
OpenGL_dis4/SDL_runner/SDL_frameworks/OSX/SDL2_mixer.framework/Versions/
A/Frameworks/smpeg2.framework/Versions/A/smpeg2
Reason: image not found
Trace/BPT trap: 5
答案 0 :(得分:0)
它应该是
FLAGS+=-"rpath $(pwd)/SDL_runner/SDL_frameworks/OSX/ "
或
FLAGS+="-rpath $(pwd)/SDL_runner/SDL_frameworks/OSX/ "
答案 1 :(得分:0)
在OSX上打破了SDL2混音器框架。