代码之家  ›  专栏  ›  技术社区  ›  leexing

在Visual Studio代码中用OpenGL设置SDL2

  •  1
  • leexing  · 技术社区  · 1 年前

    我试图在macOS上的Visual Studio Code中使用SDL2设置OpenGL项目,但遇到了两个问题:

    1. 未找到SDL2库: 即使我安装了SDL2,Visual Studio Code也找不到SDL2库。如何配置它以定位SDL2文件?它在库导入中显示为红色,我曾经遇到过这个错误,实际上我已经修复了:

      Error: `dyld[3406]: Library not loaded: @rpath/SDL2.framework/Versions/A/SDL2 Referenced from: ... Reason: no LC_RPATH's found`
      
    2. LLDB发生MI错误: 当我尝试调试项目时,LLDB给出了一个机器接口驱动程序错误。修复此问题的正确配置是什么?

      错误:

      Starting: "/usr/bin/lldb" --interpreter=mi
      error: unknown option: --interpreter=mi
      Use 'lldb --help' for a complete list of options.
      "/usr/bin/lldb" exited with code 1 (0x1).
      

    以下是我的配置文件:

    tasks.json

    {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: clang++ build active file",
                "command": "/usr/bin/clang++",
                "args": [
                    "-fcolor-diagnostics",
                    "-fansi-escape-codes",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}",
                    "-F/Library/Frameworks",
                    "-framework", "SDL2",
                    "-framework", "OpenGL",
                    "-I/Library/Frameworks/SDL2.framework/Headers",
                    "-Wl,-rpath,/Library/Frameworks"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                }
            }
        ]
    }
    

    launch.json

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Debug C++ File",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/${fileBasenameNoExtension}",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "lldb",
                "preLaunchTask": "C/C++: clang++ build active file",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "miDebuggerPath": "/usr/bin/lldb"
            }
        ]
    }
    

    我如何确保SDL2库被Visual Studio代码正确链接和找到?为了解决LLDB调试问题,可能需要进行哪些配置更改?

    1 回复  |  直到 1 年前
        1
  •  1
  •   Marcos Fernández    1 年前

    您在VSCode中使用SDL2设置OpenGL项目方面进展顺利,但有一些问题需要解决。

    1. 未找到SDL2库: VSCode未检测到SDL2库,导致它们显示红色错误下划线。要解决这个问题,您需要编辑C/C++配置UI文件。您可以通过从命令面板运行命令C/C++:编辑配置(UI)来查看C/C++配置UI:

    c_cpp属性.json

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

    确保已在中安装SDL2库 /Library/Frameworks .

    1. LLDB发生MI错误: LLDB返回与以下内容相关的错误 --interpreter=mi ,表示配置不匹配或已弃用选项。这个 --口译员=mi 选项不再是LLDB的一部分。有关更多详细信息,请参阅 lists.llvm.org 。作为解决方法,请使用以下配置:

    launch.json

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch C++ Program",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/${fileBasenameNoExtension}",
                "args": [],
                "cwd": "${workspaceFolder}",
                "preLaunchTask": "C/C++: clang++ build active file",
                "stopAtEntry": false,
                "MIMode": "lldb"
            }
        ]
    }
    

    确保您还安装了C/C++VSCode扩展!