#go #visual-studio-code
#Вперед #visual-studio-code
Вопрос:
Я установил следующую задачу для компиляции моего проекта Go после этого сообщения в блоге: https://robertbasic.com/blog/build-and-run-golang-projects-in-vs-code /
tasks.json:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build Go",
"type": "shell",
"command": "go build",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Теперь я могу скомпилировать проект с помощью терминала> Выполнить задачу сборки
Для запуска и отладки я создал:
запустите.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"cwd": "${workspaceRoot}",
"args": [],
"env": {}
}
]
}
Но это не работает, я получаю следующее сообщение:
package .: no Go files in /usr/home/username/projects/my_app/.vscode
Process exiting with code: 1 signal: false
Код Visual Studio под FreeBSD12.1 (вероятно, не имеет значения).
Что мне нужно сделать, чтобы запустить программу при использовании F5 / CTRL F5? Приветствуется любой совет, включая рекомендуемый раздел справки или запись в блоге.
Комментарии:
1. команда go выполняется в папке .vscode, вам просто нужно исправить каталог, в котором выполняется код
2. Проблема заключалась также в том, что я не запускал F5 из основного пакета.
3. В большинстве проектов я меняю program на
${workspaceFolder}
или${workspaceFolder}/cmd/myproject
или любую другую папку, содержащую мой основной пакет, и это эквивалентно запускуgo run .
в этой папке. Таким образом, не имеет значения, какой файл go у вас открыт в данный момент (если это даже файл go), он будет просто отлаживаться. Все остальные значения обычно остаются по умолчанию, за исключением случайногоargs
илиenv
дополнительного.
Ответ №1:
Предполагая, что мой основной пакет находится в корневой папке рабочей области, я всегда определяю то же самое .vscode/launch.json
:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}",
"env": {},
"args": []
}
]
}
Оттуда я могу нажать F5из любого места / любого файла, и сеанс отладки просто начнется.
Комментарии:
1. Это должно быть отмечено как ответ. Большое вам спасибо, Фон! Исправлена моя проблема.
2. @pandascope Молодец! Я рад, что этот ответ по-прежнему полезен.