【问题标题】:Library not loaded SDL2 using Xcode Version 13.3.1 on macOS 12.3.1库未在 macOS 12.3.1 上使用 Xcode 版本 13.3.1 加载 SDL2
【发布时间】:2023-01-10 10:19:19
【问题描述】:

我正在尝试在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)
    

    我可能做错了什么?

【问题讨论】:

  • 为什么这个问题/帖子的评分是-1?我只是想通过提问来学习......
  • 您可以尝试使用 brew 安装 SDL2 吗?

标签: c++ xcode macos sdl sdl-2


【解决方案1】:

检查步骤:

  1. 确保 SDL2.framework 正确导入到项目中。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2022-06-10
      • 2020-05-22
      • 2020-12-17
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 2018-08-14
      • 2019-09-21
      相关资源
      最近更新 更多