如何在 VSCode 中轻松切换 msys2 编译器

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

我在 Windows 上使用带有 VSCode 的 msys2 编译器,并希望能够在 MingW64、UCRT64 和 Clang64 编译器之间轻松切换。 根据MSys2网站的默认设置是将msys2基础bin目录以及各自环境的bin目录添加到路径中:

C:\msys64\ucrt64\bin
C:\msys64\ucrt64\bin

这有几个作用: 不错的是,您可以在任何地方使用

C:\msys64\usr\bin
的标准 gnu 工具,例如
less
命令。 不好的是您必须更改路径以更改编译器,但这不会传递到正在运行的 VSCode 环境,因此您必须先退出并重新启动。 现在我可以在 launch.json 文件或 VSCode 内部终端的配置中设置环境变量。 但是,只在 Windows 路径中添加一个小条目是非常不方便的。

现在我看到以下内容:

  • 在 launch.json 中有条目
    "MIMODE"
    "miDebuggerPath"
  • 在msys环境的环境变量中有环境变量
    MSYSTEM
    MSYSTEM_Prefix
    (以及其他一些),它们未在 Windows cmd 提示符中定义。 启动配置中这些变量的定义是否足以让 msys 找到所有内容? 那我就可以
C:\msys64\ucrt64\bin

在默认路径中,这将使我能够访问标准 msys2 工具,但通过 launch.json 中的定义专门控制编译器选择。 唯一的缺点是不能在“普通”终端窗口中立即访问预定义的编译器——但这也是一个优点,因为我可以简单地通过批处理文件加载必要的环境变量,然后可以很容易地从编译器环境。

在 VSCode 的文档中说 https://code.visualstudio.com/docs/cpp/launch-json-reference#_environment 环境变量的配置必须如下所示:

[ { "name": "config", "value": "Debug" } ], not [ { "config": "Debug" } ]

所以我的 launch.json 部分看起来像这样:

            }, "name": "(gdb) Launch current file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "C:/msys64/mingw64/bin",
            "environment": [
                {
                    "name": "MSYSTEM", "value": "MINGW64",
                    "name": "MSYSTEM_PREFIX", "value": "/mingw64"
                }
            ],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",

但是,VSCode 中的

Problems
窗口现在立即显示内容有四个错误 重复的对象键 jsonc(520) [lnxy, Col xy]`。 显然我不能像这样定义多个环境变量? 我完全可以按计划的方式设计我的编译器选择吗? 这是一个好方法吗?

www.DeepL.com/Translator翻译(免费版)

visual-studio-code msys2
© www.soinside.com 2019 - 2024. All rights reserved.