用xcode 建一个 空的控制台项目后,增加了 SDL2.framwork ,虽然编译ok ,但是程序运行起来直接 crash ,控制台输出 找不到 SDL2.framework.
情况类似 windows 下 ,编译时候有 .lib 静态库,但是运行时 .exe 目录里没有相关的 .lib ,报错找不到 库文件。
解决办法是 ,在 xcode 项目的 Build Phases 里,最最左上角的加号,可以点击 ,之后选择 New Copy File Phase, 即可增加 一个 "拷贝文件阶段".
之后 , Build Phases 最下面就会多出来一个大条目。拷贝的 Destination 选择 framework (默认是 Absolution Path),把用到的 SDL2.framework 拖过去即可
这样,在 Build 出来的可执行文件的目录同级,就会多靠背出来一个 .framework 文件,运行时就不会报 xxx.framework 找不到 can not load 的 问题了。
另一个问题是,sdl2 以前写的小例子,在windows 下跑得很好,在 mac 下会 在这一步
gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED);
错误信息是 renderer already associated with window , "渲染器已关联大窗口".
这样,把 gRenderer = SDL_CreateRenderer(gWindow,xxxx)
改成
gRenderer = SDL_GetRenderer(gWindow), 一切 OK.
这这这 。。。图片竟然全都没有传上来 。。。
再补一遍吧,将来自己回头查起来能直观一些