xcode Build Phases 增加新内容;SDL2 renderer already associated with window 错误

用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);


返回空指针,导致程序无法继续。根据以往的调试 opengl 的经验,找一个类似 getLastError() 的函数,果然有个 SDL_GetError()

错误信息是 renderer already associated with window  , "渲染器已关联大窗口".

这样,把 gRenderer = SDL_CreateRenderer(gWindow,xxxx) 

改成

gRenderer = SDL_GetRenderer(gWindow), 一切 OK.



这这这 。。。图片竟然全都没有传上来 。。。

再补一遍吧,将来自己回头查起来能直观一些







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值