Visual Studio Code,#include <stdio.h> 说“将包含路径添加到设置”

新手上路,请多包涵

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

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

但是在 #include <stdio.h> 下有一条绿线表示“将包含路径添加到设置”。当我单击它时,它会移至“c_cpp_properties.json”。

如何以及在哪里可以在下面的配置中添加包含路径?

 "configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/include"]
    }
]

原文由 stdio.h 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 732
2 个回答

对这种情况的更当前的看法。在 2018 年,C++ 扩展在 c_cpp_properties.json 文件的配置 compilerPath 中添加了另一个选项;

compilerPath (可选)用于构建项目的编译器的绝对路径。该扩展将查询编译器以确定用于 IntelliSense 的系统包含路径和默认定义。

如果使用,则 includePath ,因为 IntelliSense 将使用编译器来确定系统包含路径。


起初,

如何以及在哪里可以在下面的配置中添加包含路径?

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

 "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"
        ]
    }
]

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

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

_如果安装了 Xcode,上述示例包括 SDK (OSX 10.11) 路径_。

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

cpptools 扩展可以 在这里找到

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


为了保存(来自讨论),以下是 tasks.json 文件内容的基本片段,用于编译和执行 C++ 文件或 C 文件。它们允许文件名中包含空格(需要使用 \" 转义 json 中的附加引号)。 shell 用作 运行程序,从而允许程序的编译( clang... )和执行( && ./a.out )。它还假设 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"]
}

对于 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...
}

原文由 Niall 发布,翻译遵循 CC BY-SA 4.0 许可协议

重新安装 C/C++ 扩展包为我解决了这个问题。

原文由 Shahrear Bin Amin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题