【问题标题】:Set include paths of c/c++-project relative to workspace path in Visual Studio Code (.json configuration)在 Visual Studio Code 中设置相对于工作区路径的 c/c++-project 的包含路径(.json 配置)
【发布时间】:2018-01-06 17:13:45
【问题描述】:

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

我有以下文件夹结构

mainfolder
   /include1
   /include2
   /project/workspacepathofVScode

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

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

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "**/**/include1",
                "**/**/include2",
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "**/**/include1",
                    "**/**/include2",
                ]
            }
        }
    ],
    "version": 2
}

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

【问题讨论】:

  • 我从来没有处理过这个配置文件,但是对于一个典型的文件系统路径,我希望点字符而不是星号来产生相对路径"../../include1" - vscode 属性文件在这个文件中是特殊的考虑?
  • @grek40 这就是我试图找出的。它没有记录在任何地方。点表示法也不起作用。
  • 我在做同样的事情时遇到了${workspaceFolder}
  • @AmirMaleki 这可能是一个新功能。随意发布答案,但我需要一些时间来测试它。

标签: c c++ vscode c++ c json visual-studio-code


【解决方案1】:

Vscode 不直接支持相对路径,但是可以从包含绝对路径的路径变量开始,然后追加相对路径。请参阅以下错误讨论:Unable to resolve includes with relative paths

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

include1 的完整路径应该是:

"${workspaceRoot}/../../include1"

【讨论】:

  • 确实如此!我以前试过这样的东西,但显然不是这种组合。
  • 已编辑,现在应该读起来像一个答案,而不是半知半解的猜测;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 2021-10-13
  • 1970-01-01
  • 2018-03-25
  • 2021-05-07
  • 2016-07-07
相关资源
最近更新 更多