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.json
arquivo 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 gcc
usando
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 run
ou ubuntu run
em vez de bash
para 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:\Projects
pasta, 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 bash
com argumentos diferentes dependendo da tarefa.
Você pode configurar (ou criar) seu próprio arquivo task.json
. Você deve definir o bash
como 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.