Visual Studio代码includePath

std*_*o.h 51 c c++ visual-studio-code

我正在尝试在Visual Studio Code中构建C/C++.我安装了C/C++和所有相关的扩展.

#include <stdio.h>
int main() {
    printf("Test C now\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是在#include <stdio.h>"添加包含设置路径" 下面有一条绿线.当我单击它时,它会移动到"c_cpp_properties.json".

我可以在下面的配置中添加包含路径的方式和位置?

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/include"]
    }
]
Run Code Online (Sandbox Code Playgroud)

Vit*_*tox 45

对于从谷歌上掉下来的每个人,这里是 VSCode 1.40 (2019) 的修复程序:

打开全局 settings.json:文件 > 首选项 > 设置

打开全局 settings.json:文件 > 首选项 > 设置

然后选择“用户”选项卡,打开“扩展”部分,单击“C/C++”。然后滚动右侧面板,直到找到“在 settings.json 中编辑”按钮。

然后选择“用户”选项卡,打开“扩展”部分,单击“C/C++”。 然后滚动右侧面板,直到找到“在 settings.json 中编辑”按钮。

最后,添加“C_Cpp.default.includePath”部分。那里提供的代码来自我自己的系统(Windows 7)。您可以将其用作您自己的库路径的基础。(记住将 更改YOUR USERNAME为您正确的系统(我的案例窗口)用户名)
(编辑信息:我的方法的递归存在问题。VSCode 不喜欢同一事物的多个定义。我用 解决了它"C_Cpp.intelliSenseEngine": "Tag Parser"

最后,添加“C_Cpp.default.includePath”部分。 那里提供的代码来自我自己的系统(Windows 7)。 您可以将其用作您自己的库路径的基础。 (记住将您的用户名更改为您正确的系统(我的案例窗口)用户名)

settings.json 中第 7 行之前的代码与 arduino 或 includePath 无关。你不能复制那个...

要添加到 settings.json 的 JSON 部分:

"C_Cpp.default.includePath": [
        "C:/Program Files (x86)/Arduino/libraries/**",
        "C:/Program Files (x86)/Arduino/hardware/arduino/avr/cores/arduino/**",
        "C:/Program Files (x86)/Arduino/hardware/tools/avr/avr/include/**",
        "C:/Program Files (x86)/Arduino/hardware/tools/avr/lib/gcc/avr/5.4.0/include/**",
        "C:/Program Files (x86)/Arduino/hardware/arduino/avr/variants/standard/**",
        "C:/Users/<YOUR USERNAME>/.platformio/packages/framework-arduinoavr/**",
        "C:/Users/<YOUR USERNAME>/Documents/Arduino/libraries/**",
        "${workspaceFolder}/libraries/**",
        "${workspaceFolder}/**"
    ],
"C_Cpp.intelliSenseEngine": "Tag Parser"
Run Code Online (Sandbox Code Playgroud)


Nia*_*all 42

我可以在下面的配置中添加包含路径的方式和位置?

列表是一个字符串数组,因此添加一个包含路径看起来像;

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/local/include",
            "/path/to/additional/includes",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include"
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

资源; cpptools博客2016年3月31日.

链接源有一个显示Win32配置格式的gif,但同样适用于其他配置.

如果安装了Xcode,上面的示例包含SDK(OSX 10.11)路径.

注意我发现更改包含路径后可能需要一段时间才能更新.

cpptools扩展可以在这里找到.

可以在此处找到有关 VSCode中C++语言支持的更多文档(来自Microsoft).


为了保存(从讨论中),以下是tasks.json文件内容的基本片段,用于编译和执行C++文件或C文件.它们允许文件名中的空格(需要使用json转义其他引号compilerPath).壳使用作为流道,从而允许汇编(c_cpp_properties.json)和执行(compilerPath该程序的).它还假定tasks.json"生活"在本地工作空间中(在.vscode目录下).可以在此处找到更多task.json详细信息,例如支持的变量等.

对于C++;

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang++ -std=c++14 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"]
}
Run Code Online (Sandbox Code Playgroud)

对于C;

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang -std=c11 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"] // command arguments... 
}
Run Code Online (Sandbox Code Playgroud)

  • 我只想补充一点,我在这里找到了创建c_cpp_properties.json,tasks.json和launch.json的说明https://code.visualstudio.com/docs/languages/cpp (4认同)
  • 请记住,您可以将`/ **`用于递归包括:`“ includePath”:[“ C:/ path / to / all / includes / **”]`。 (2认同)

rye*_*nus 13

对于Mac用户只安装了命令行工具而不是Xcode,请检查/Library/Developer/CommandLineTools/目录,例如::

"configurations": [{
    "name": "Mac",
    "includePath": [
        "/Library/Developer/CommandLineTools/usr/lib/clang/8.1.0/include/",
        "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1/tr1/",
        "/usr/include/c++/4.2.1",
        "/usr/local/include",
        "/usr/include"
    ]
}]
Run Code Online (Sandbox Code Playgroud)

注意:您还可以c_cpp_properties.json通过C/Cpp: Edit Configurations命令选项板(⇧⌘P)中的命令打开/生成文件.


reg*_*odo 9

在您的用户设置中添加:

"C_Cpp.default.includePath":["path1","path2"]
Run Code Online (Sandbox Code Playgroud)

  • 这个,加上另一个答案中提供的路径,加上末尾附加的“ ** ”,就成功了!(例如:“C_Cpp.default.includePath”:[“C:/Users/Administrator/Documents/Arduino/libraries/**”]) (3认同)