Использование gcc из Windows Sublinuxsystem в Vscode на Windows

Использование gcc из Windows Sublinuxsystem в Vscode на Windows

Начиная с обновления Windows Fall Creators Update мы можем установить подсистему Linux, например Ubuntu, измагазин оконна машине с Windows.

Можно ли использовать компилятор gcc из подсистемы Linux в Windows для сборки приложений на языке C с помощью vscode в Windows для Linux?

решение1

Код Visual Studio— это кроссплатформенная IDE, которая использует tasks.jsonфайл для описания того, как компилировать (и выполнять другие задачи) ваш проект. Вы можете запустить VSCode в Windows или в подсистеме WSL Ubuntu. Если вы хотите запустить его в WSL, вы должны использовать двоичные файлы Ubuntu/Linux.


Заметки о WSL

В командной строке Windowsвы можете запускать команды Linux, используяbash

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

Например, вы можете запустить Linux, gccиспользуя

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

Если у вас установленонесколько систем Linux на WSL, например, opensuse и ubuntu, вы должны использовать opensuse-42 runили ubuntu runвместо , bashчтобы определить, какую подсистему Linux использовать в командной строке Windows.

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

Кроме того, обратите внимание, что доступ к файловой системе Windows можно получить с помощью /mnt/<drive letter>/. Например, если у вас есть C:\Projectsпапка, вы можете получить к ней доступ из Linux по адресу/mnt/C/Projects


Настройка VSCode в Windows для использования GCC в WSL Linux

Проверитьинструкции на сайте. Чтобы использовать компиляторы GCC или CLang в Mac или Linux, вы можете использовать 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 по темекомпиляция и отладка программ Linux GCC с использованием WSL и Visual Studioно не Visual Studio Code.

Связанный контент