web-dev-qa-db-fra.com

Utiliser gcc à partir de Windows Sublinuxsystem dans Vscode sous Windows

Depuis la mise à jour de Windows Fall Creators, nous pouvons installer un sous-système Linux tel que Ubuntu à partir de windows store sur une machine Windows.

Est-il possible d'utiliser le compilateur gcc du sous-système Linux sous Windows pour créer des applications c avec vscode sous Windows pour Linux?

5
Briefkasten

Code Visual Studio est un IDE multiplate-forme qui utilise un fichier tasks.json pour décrire comment compiler (et effectuer d'autres tâches) votre projet. Vous pouvez exécuter le VSCode sous Windows ou dans le sous-système WSL Ubuntu. Si vous voulez l'exécuter dans le WSL, vous devez utiliser les fichiers binaires Ubuntu/Linux.


Notes sur WSL

Dans la ligne de commande Windows, vous pouvez exécuter les commandes linux avec bashname __

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

Par exemple, vous pouvez exécuter Linux gccen utilisant

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

Si vous avez installé plusieurs systèmes linux sur WSL , par exemple. un opensuse et un Ubuntu, vous devez utiliser opensuse-42 run ou ubuntu run au lieu de bashpour déterminer quel sous-système linux utiliser sur la ligne de commande windows.

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

De plus, notez qu'il est possible d'accéder au système de fichiers Windows à l'aide de /mnt/<drive letter>/. Par exemple, si vous avez un dossier C:\Projects, vous pouvez y accéder à partir de Linux à /mnt/C/Projects


Configuration d'un VSCode sous Windows pour utiliser le GCC dans le WSL Linux

Vérifiez le instructions sur le site . Pour utiliser les compilateurs GCC ou CLang sous Mac ou Linux, vous pouvez utiliser bashavec des arguments différents en fonction de la tâche.

Vous pouvez configurer (ou créer) votre propre task.json. Vous devez définir bashen tant que commande à utiliser. Je pense que presque la même configuration que vous utilisez pour Mac/Linux doit fonctionner. J'ai changé l'option "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
            }
        ]
    }
}

Il existe quelques autres Gists que vous pouvez utiliser comme autres exemples.

REMARQUE: J'ai trouvé des didacticiels MS sur compilation et débogage de programmes Linux GCC à l'aide de WSL et de Visual Studio mais pas du code Visual Studio. .

4
Jaime