2017-07-31 1062 views
2

我想定义我的/项目的包含路径,相对于我的工作空间文件夹。由于mainfolder在我工作的每个系统上有不同的路径,我不想总是更改配置文件。设置包含c/C++的路径 - 相对于vscode中的工作空间路径的项目(.json配置)

我有以下文件夹strucure

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的包含路径? 如果我认为这是不可能的,你知道任何解决方法吗?

+0

我从来没有在这个配置文件的工作,但对于一个典型的文件系统路径,我希望点的字符,而不是恒星产生相对路径'” ../../ include1“' - vscode属性文件在这方面是特殊的吗? – grek40

+0

@ grek40这就是我试图找出。它没有记录在任何地方。点符号不起作用。 – thewaywewalk

回答

1

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

所以对于路径的情况下提出的,多数民众赞成应该是相对于工作空间路径,开始与工作空间的路径变量,使用".."代替"**"导航到父文件夹。

include1的完整路径应该是:

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

它呢!我之前尝试过这样的事情,但显然不是这种组合。 – thewaywewalk

+0

已编辑,现在它应该看起来像一个答案,而不是半知情的猜测;) – grek40