Начиная с обновления 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.