Desde Windows Fall Creators Update podemos instalar un subsistema Linux como Ubuntu desde eltienda de ventanasen una máquina con Windows.
¿Es posible utilizar el compilador gcc del subsistema Linux en Windows para crear aplicaciones C con vscode en Windows para Linux?
Respuesta1
Código de estudio visuales un IDE multiplataforma que utiliza un tasks.json
archivo para describir cómo compilar (y realizar otras tareas) su proyecto. Puede ejecutar VSCode en Windows o en el subsistema WSL Ubuntu. Si desea ejecutarlo en WSL, debe usar los binarios de Ubuntu/Linux.
Notas sobre WSL
En la línea de comando de Windows,puedes ejecutar comandos de Linux usandobash
C:\> bash.exe -c <linux command>
Por ejemplo, puede ejecutar Linux gcc
usando
C:\> bash -c "gcc -v"
Si tienes instaladomúltiples sistemas Linux en WSL, por ejemplo, opensuse y ubuntu, debe usar opensuse-42 run
o ubuntu run
en lugar de bash
para determinar qué subsistema de Linux usar en la línea de comando de Windows.
C:\> ipconfig | opensuse-42 run grep IP | ubuntu run lolcat
Además, tenga en cuenta que se puede acceder al sistema de archivos de Windows mediante /mnt/<drive letter>/
. Por ejemplo, si tiene una C:\Projects
carpeta, puede acceder a ella desde Linux en/mnt/C/Projects
Configurar un VSCode en Windows para usar GCC en WSL Linux
Comprobar elinstrucciones en el sitio web. Para usar compiladores GCC o CLang en Mac o Linux, puede usar bash
con diferentes argumentos según la tarea.
Puedes configurar (o crear) el tuyo propio task.json
. Debes definir el bash
como el comando a utilizar. Creo que debe funcionar casi la misma configuración que usas para Mac/Linux. Cambié la opción "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
}
]
}
}
Hay algunos otrosesenciasPuedes usarlo como otros ejemplos.
NOTA:He encontrado algunos tutoriales de MS sobrecompilar y depurar programas Linux GCC usando WSL y Visual Studiopero no el código de Visual Studio.