在 macOS 12.3.1 上使用 Xcode 版本 13.3.1 时未加载 SDL2 库

问题描述 投票:0回答:3

我正在尝试在

SDL2
 上使用 
Xcode Version 13.3.1
 来学习 
macOS Monterey 12.3.1

按照以下步骤操作:

  1. 下载/运行

    dmg
    文件并将提取的
    SDL2.framework
    顶级文件夹移动到
    /Library/Frameworks

  2. 在 Xcode 中,制作了

    Command line
    项目,指定 C++ 作为语言。

  3. 在 Xcode 的常规选项卡中,我在

    SDL2.framework
    下添加了
    Frameworks and Libraries
    并选择
    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)

我可能做错了什么?

c++ xcode macos sdl sdl-2
3个回答
0
投票

对我来说,它的工作原理是确保我嵌入并签署 SDL 框架。


0
投票

XCode 对于 SDL 完全没用,我建议你使用其他 IDE,如 Visual Studio Code

如果你要使用 VSCode,当你为你的项目创建一个目录时,添加一个

.vscode
文件夹,添加
c_cpp_properties.json
,然后在其中写入以下代码

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/Library/Frameworks"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "macos-clang-arm64"
        }
    ],
    "version": 4
}

-1
投票

干得好,你已经成功安装了

SDL2.framework 
,当我看到'/Library/Frameworks/SDL2.framework/Versions/A/SDL2 ```时,就是成功的标志。

现在您应该检查如下步骤:

  1. 确保

    SDL2.framework 
    '/Library/Frameworks/SDL2.framework/Versions/A/SDL2 ``` 已正确导入到项目中。

  2. 检查您提供的日志信息,

    @rpath/SDL2.framework/Versions/A/SDL2
    运行时路径可能不正确。

  3. 在Xcode的Build Settings中,找到

    Runpath Search Paths
    选项,添加
    SDL2
    的真实路径,或使用
    install_name_tool
    修改/添加
    SDL2.framework
    的路径。

© www.soinside.com 2019 - 2024. All rights reserved.