在 Visual Studio Code 中设置相对于工作区路径的 c/c++ 项目的包含路径(.json 配置)

the*_*alk 7 c c++ json visual-studio-code

我想在 / 项目相对于我的工作区文件夹的包含路径。由于我工作的每个系统上都有不同的路径,并且我不想总是更改配置文件。mainfolder

我有以下文件夹结构

mainfolder
   /include1
   /include2
   /project/workspacepathofVScode
Run Code Online (Sandbox Code Playgroud)

所以我用vscode打开的文件夹是workspacepathofVScode.

在我的配置文件中,c_cpp_properties.json我曾经**/**/从工作区根目录向上两层获取,以包含我的两个包含文件夹,但它似乎不是正确的语法:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "**/**/include1",
                "**/**/include2",
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "**/**/include1",
                    "**/**/include2",
                ]
            }
        }
    ],
    "version": 2
}
Run Code Online (Sandbox Code Playgroud)

如何定义相对于 的包含路径workspacepathofVScode? 如果按照我的想法不可能,你知道有什么解决方法吗?

gre*_*k40 6

Vscode 不直接支持相对路径,但可以从包含绝对路径的路径变量开始,然后附加相对路径。请参阅以下错误讨论:无法解析包含相对路径的内容

因此,对于所呈现的路径情况,应该相对于工作空间路径,从工作空间路径变量开始,并使用".."而不是"**"导航到父文件夹。

完整的路径include1应该是:

"${workspaceRoot}/../../include1"
Run Code Online (Sandbox Code Playgroud)