如何在 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 团队的冲击。
目前我正在使用 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 团队的冲击。