在 Windows 上的 Vscode 中使用 Windows Sublinuxsystem 中的 gcc

在 Windows 上的 Vscode 中使用 Windows Sublinuxsystem 中的 gcc

自 Windows Fall Creators Update 以来,我们可以从窗户商店在 Windows 机器上。

是否可以使用 Windows 上的 Linux 子系统中的 gcc 编译器在 Windows 上使用 vscode 为 Linux 构建 c 应用程序?

答案1

Visual Studio 代码是一个跨平台 IDE,它使用tasks.json文件来描述如何编译(和执行其他任务)您的项目。您可以在 Windows 或 WSL Ubuntu 子系统中运行 VSCode。如果您想在 WSL 中运行它,则必须使用 Ubuntu/Linux 二进制文件。


关于 WSL 的说明

在 Windows 命令行中,你可以使用以下方式运行 Linux 命令bash

C:\> bash.exe -c <linux command>

例如,你可以gcc使用

C:\> bash -c "gcc -v"

如果您已安装WSL 上的多个 Linux 系统,例如 opensuse 和 ubuntu,您必须使用opensuse-42 runubuntu run而不是来bash确定在 windows 命令行中使用哪个 linux 子系统。

C:\> ipconfig | opensuse-42 run grep IP | ubuntu run lolcat

此外,请注意,可以使用 访问 Windows 文件系统/mnt/<drive letter>/。例如,如果您有一个C:\Projects文件夹,则可以从 Linux 访问它/mnt/C/Projects


在 Windows 中配置 VSCode 以在 WSL Linux 中使用 GCC

检查网站上的说明。要在 Mac 或 Linux 中使用 GCC 或 CLang 编译器,您可以bash根据任务使用带有不同参数的。

您可以配置(或创建)自己的task.json。您必须将定义bash为要使用的命令。我认为几乎与 Mac/Linux 使用的配置相同。我更改了“cwd”选项。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "wsl": {
        "command": "bash",
        "args": ["-c"],
        "isShellCommand": true,
        "showOutput": "always",
        "suppressTaskName": true,
        "options": {
            "cwd": "/mnt/C/${workspaceRoot}"
         },
        "tasks": [
             {
                "taskName": "hello",
                "args": [
                    "make hello"
                ],
                "isBuildCommand": true
             },
             {
                "taskName": "clean",
                "args": [
                    "make clean"
                ]
             },
             {
                "taskName": "compile w/o makefile",
                "args": [
                    "g++ helloworld.C -o hello"
                ],
                "echoCommand": true
            }
        ]
    }
}

还有一些其他的要点您可以将其用作其他示例。

笔记:我找到了一些 MS 教程使用 WSL 和 Visual Studio 编译和调试 Linux GCC 程序但不是 Visual Studio Code。

相关内容