Use gcc do Windows Sublinuxsystem em Vscode no Windows

Use gcc do Windows Sublinuxsystem em Vscode no Windows

Desde o Windows Fall Creators Update, podemos instalar um subsistema Linux como o Ubuntu a partir doloja de janelasem uma máquina Windows.

É possível usar o compilador gcc do subsistema Linux no Windows para construir aplicativos C com vscode no Windows para Linux?

Responder1

Código do Visual Studioé um IDE multiplataforma que usa um tasks.jsonarquivo para descrever como compilar (e executar outras tarefas) seu projeto. Você pode executar o VSCode no Windows ou no subsistema WSL Ubuntu. Se você quiser executá-lo no WSL, você deve usar os binários Ubuntu/Linux.


Notas sobre WSL

Na linha de comando do Windows,você pode executar comandos do Linux usandobash

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

Por exemplo, você pode executar o Linux gccusando

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

Se você instalouvários sistemas Linux em WSL, por exemplo, um opensuse e um ubuntu, você deve usar opensuse-42 runou ubuntu runem vez de bashpara determinar qual subsistema Linux usar na linha de comando do Windows.

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

Além disso, observe que o sistema de arquivos do Windows pode ser acessado usando /mnt/<drive letter>/. Por exemplo, se você tiver uma C:\Projectspasta, poderá acessá-la no Linux em/mnt/C/Projects


Configurando um VSCode no Windows para usar o GCC no WSL Linux

Verifica ainstruções no site. Para usar compiladores GCC ou CLang no Mac ou Linux, você pode usar o bashcom argumentos diferentes dependendo da tarefa.

Você pode configurar (ou criar) seu próprio arquivo task.json. Você deve definir o bashcomo o comando a ser usado. Acho que quase a mesma configuração que você usa para Mac/Linux deve funcionar. Alterei a opção "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
            }
        ]
    }
}

Existem alguns outrosGistasvocê pode usar como outros exemplos.

OBSERVAÇÃO:Eu encontrei alguns tutoriais de MS emcompilando e depurando programas Linux GCC usando WSL e Visual Studiomas não o código do Visual Studio.

informação relacionada