2017-07-31 1058 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