Начиная с Windows Fall Creators Update, мы можем установить подсистему Linux, такую как Ubuntu, из хранилища Windows на машине с Windows.
Можно ли использовать компилятор gcc из подсистемы Linux в Windows для создания приложений c с vscode в Windows для Linux?
Кодом Visual Studio является межплатформенный IDE, который использует a tasks.json
файл, чтобы описать, как скомпилировать (и выполнить другие задачи), Ваш проект. Можно выполнить VSCode в Windows или в подсистеме Ubuntu WSL. Если Вы хотите выполнить его в WSL, необходимо использовать двоичные файлы Ubuntu/Linux.
Примечания по WSL
В командной строке Windows можно выполнить использование команд Linux bash
C:\> bash.exe -c <linux command>
Например, можно запустить Linux gcc
использование
C:\> bash -c "gcc -v"
При установке нескольких систем Linux на WSL, например, opensuse и человечности необходимо использовать opensuse-42 run
или ubuntu run
вместо bash
определить который использование подсистемы Linux в командной строке окон.
C:\> ipconfig | opensuse-42 run grep IP | ubuntu run lolcat
Кроме того, обратите внимание, что с помощью файловая система Windows можно получить доступ /mnt/<drive letter>/
. Например, если у Вас есть a C:\Projects
папка, можно получить доступ к нему из Linux в /mnt/C/Projects
Конфигурирование VSCode в Windows для использования GCC в Linux WSL
Проверьте инструкции в веб-сайт. Для использования GCC или компиляторов Лязга в 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.