库未在macOS 12.3.1上使用Xcode Version 13.3.1加载SDL2



我试图在macOS Monterey 12.3.1上使用Xcode Version 13.3.1来学习SDL2

执行以下步骤:

  1. 下载/运行dmg文件并将解压后的SDL2.framework顶层文件夹移动到/Library/Frameworks

  2. 在Xcode内部,制作Command line项目,指定c++为语言。

  3. 在Xcode的通用选项卡中,我在Frameworks and Libraries下添加了SDL2.framework,并选择了Embed作为Do Not Embed

  4. 在Xcode的构建设置中,在Search Paths / Framework Search Paths下-我添加了适当的${inherited}${PROJECT_DIR}(都设置为non-recursive)。

现在,当我尝试build项目时(即使我复制了一些介绍性代码,也就是说,通过在线教程呈现小窗口),我得到以下错误:

dyld`__abort_with_payload:
0x10005a0d4 <+0>:  movl   $0x2000209, %eax          ; imm = 0x2000209 
0x10005a0d9 <+5>:  movq   %rcx, %r10
0x10005a0dc <+8>:  syscall 
->  0x10005a0de <+10>: jae    0x10005a0e8               ; <+20>
0x10005a0e0 <+12>: movq   %rax, %rdi
0x10005a0e3 <+15>: jmp    0x100017150               ; cerror_nocancel
0x10005a0e8 <+20>: retq   
0x10005a0e9 <+21>: nop    
0x10005a0ea <+22>: nop    
0x10005a0eb <+23>: nop    

dyld[22494]: Library not loaded: @rpath/SDL2.framework/Versions/A/SDL2
Referenced from: /Users/pnwlover/Library/Developer/Xcode/DerivedData/hello_sdl-buacbgrhmffapiexkmaxsewyxqvl/Build/Products/Debug/hello_sdl
Reason: tried: '/Users/pnwlover/Library/Developer/Xcode/DerivedData/hello_sdl-buacbgrhmffapiexkmaxsewyxqvl/Build/Products/Debug/SDL2.framework/Versions/A/SDL2' (no such file), '/Library/Frameworks/SDL2.framework/Versions/A/SDL2' (code signature in <AEE63968-5A4B-3298-93A8-8AB781F92E22> '/Library/Frameworks/SDL2.framework/Versions/A/SDL2' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/System/Library/Frameworks/SDL2.framework/Versions/A/SDL2' (no such file)
(lldb)

我可能做错了什么?

对我来说,它通过确保我嵌入并签署SDL框架而起作用。

检查步骤:
  1. 确保SDL2.framework正确导入到项目中。

  2. 从您提供的日志信息来看,@rpath/SDL2.framework/Versions/A/SDL2运行时路径可能不正确。

  3. 在Xcode的Build Settings中,找到Runpath Search Paths选项,添加SDL2的真实路径,或者使用install_name_tool修改/添加SDL2.framework的路径。

最新更新