如何在 Visual Studio 代码中为 Linux 的 Windows 子系统设置包含路径

How to set include paths within Windows Subsystem for Linux in Visual Studio Code

目前我正在使用 windows 机器并想尝试 windows 子系统用于 linux(wsl) 的 c++ 开发。 Visual studio code(vsc) 为处理运行良好的子系统提供了一个简洁的扩展。我无法开始工作的一件事是让 vsc 包含位于子系统内部的头文件。

我知道我可以手动添加新路径以包含在“c_cpp_properties.json”中,但我不知道从 windows 指向子系统 /usr/include(举个例子)。我找到了一些资源 (wsl include paths),但无论如何都无法使用它。我也尝试按照 gitlab 问题中的描述自己生成路径,但这也没有帮助。

任何人都有为 c++ 项目设置 vsc 和 wsl 的经验,谁能帮助我?

您需要创建此文件来设置路径等 c_cpp_properties.json 有关详细信息,您可以在此处查看 https://code.visualstudio.com/docs/cpp/config-wsl#_cc-configurations

编码愉快,

问题缺少一些信息,例如您使用的发行版以及您遵循的设置步骤。这意味着我将做出一些假设并重复您可能已经知道的信息。

假设:一个基于 Debian 的发行版 sudo apt update && sudo apt upgrade -y && sudo apt install build-essential -y 您可能还需要安装 git 或 cmake 或您的项目所需的任何其他工具。

将 C/C++ 扩展安装到遥控器中。如果您使用的是 cmake,请安装任何其他有益的扩展,例如 cmake。

需要更改的设置(全局)
"C_Cpp.default.compilerPath": "/absolute/path/to/your/compiler",
"files.eol": "\n",
"C_Cpp.default.cppStandard": "<SET>",
"C_Cpp.default.cStandard": "<SET>",
"C_Cpp.default.intelliSenseMode": "<SET>",

最后三个需要根据您的 company/project 指南进行设置。

此时,您应该能够编写使用 C++ 标准库的 C++ 代码,并且能够正常运行 Intellisense。

您的主要问题似乎是关于添加项目特定的包含路径。这是由 c_cpp_properties.json 文件处理的。您的硬盘驱动器位于 /mnt。指定你的路径。不过,更好的方法是简单地使用 VS Code variables${workspaceFolder}/include 之类的东西应该就是您所需要的。

当我尝试使用 wsl 并将其投射到 vscode 上时。会有错误。 但是你仍然可以使用那个库:

vscode from wsl server preview

我没有使用额外的配置。

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/clang-7",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "linux-clang-x64"
        }
    ],
    "version": 4
}

我认为这应该是对 WSL 团队的冲击。