【问题标题】:How to set include paths within Windows Subsystem for Linux in Visual Studio Code如何在 Visual Studio Code 中为 Linux 的 Windows 子系统设置包含路径
【发布时间】:2020-03-28 02:58:14
【问题描述】:

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

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

谁有为 c++ 项目设置 vsc 和 wsl 的经验,谁可以帮助我?

【问题讨论】:

  • 您遵循指南了吗? code.visualstudio.com/docs/remote/wsl
  • 有点。但是我找不到有关如何在那里设置包含路径的信息?还是我只是瞎了.. :D
  • 我看到人们使用 rsync 之类的工具只是将所需的头文件复制到本地机器上以将 vac 指向它们。在我看来,这似乎有点乏味。仍在寻找更集成的方式。
  • 你在 WSL 中使用的是什么发行版,你是否已经安装了必要的包和 VS Code 扩展?

标签: c++ visual-studio-code windows-subsystem-for-linux include-path vscode-remote


【解决方案1】:

当我尝试使用 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 团队的责任。

【讨论】:

    【解决方案2】:

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

    假设:基于 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>",

    最后三个需要根据您的公司/项目指南进行设置。

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

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

    【讨论】:

    • 这就是我最初尝试自己解决这个问题的方式。我在 WSL 中有一个文件夹,其中包含我所有的 cpp 项目。当我处理它们时,我会在 VSC 中打开该文件夹。也就是说,VSC 使用为打开的文件夹提供的配置的“问题”。我错误地认为 VSC 会将包含 .vscode 文件夹的每个文件夹都解释为一个项目。直接打开项目时,一切都按预期工作。不管怎么说,还是要谢谢你。 c_cpp_properties.json(或就此而言 .vscode 文件夹)不是直接的
    【解决方案3】:

    你需要创建这个文件来设置路径和更多 c_cpp_properties.json 欲了解更多信息,您可以在这里查看https://code.visualstudio.com/docs/cpp/config-wsl#_cc-configurations

    快乐编码,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      相关资源
      最近更新 更多