如何在 vscode launch.json 中编译多个 go 文件?

如果我有几个 go 文件需要在主包中,我如何指定它们在 launch.json 中编译?我会将它们重构为包。但这个项目正在抵制。


即要在命令行上运行它们,我必须使用:


go run main.go stuff.go other.go

我如何将它包含在 launch.json 文件中?


{

    "name": "Launch myprog",

    "type": "go",

    "request": "launch",

    "mode": "debug",

    "program": "${workspaceRoot}/cmd/myprog/main.go",

     "args": ["param"]

},

我已经尝试了明显的方法。我想做一些调试。


那么......我如何在launch.json中指定编译文件夹中的包而不仅仅是一个特定的文件?


如果go run main.go相当于"program": "${workspaceRoot}/cmd/myprog/main.go"


那么,go run .相当于什么?"program": "${workspaceRoot}/cmd/myprog/[?????]"


因为显而易见的对我不起作用。


茅侃侃
浏览 266回答 3
3回答

暮色呼如

使用“程序”:“。” 为我工作:{  "version": "0.2.0",  "configurations": [    {      "name": "Launch Package",      "type": "go",      "request": "launch",      "mode": "auto",      "program": ".",      "cwd": "${workspaceFolder}",    }  ]}

波斯汪

我相信您在问题中混合了一些概念,所以让我尝试逐步回答:在vscode中,该launch.json文件由 vscode 自动创建以帮助它进行调试,它不是 go 语言的一部分,它不定义您的应用程序将如何运行或编译。如需更多参考,请查看如何使用 Visual Studio Code 调试 Go 代码。编译您的应用程序 ( go build) 意味着与特定包相关的所有文件都将转换为二进制文件。查看本文以了解包如何链接到您的应用程序编译。可以使用它来运行go run您的应用程序,这与编译的效果几乎相同,只是此命令不会生成最终的可共享二进制文件。检查运行与构建现在,关于您的问题,如果您需要在 vscode 上启用正确的调试,请查看gopls-vscode,但如果您的代码由于依赖于其他文件/包而无法编译,请查看关于包的教程上文提到的。我希望我能给你一些帮助。

烙印99

我的系统肯定有其他问题。因为在某些时候它才刚刚开始工作......虽然我现在也在使用插件的夜间版本golang.go-nightly。它完美地修复了缺少的根调试功能......这现在工作正常......{   "name": "Prog",   "type": "go",   "request": "launch",   "mode": "debug",   "program": "${workspaceRoot}/src/cmd/prog/",   "args": [""]},
打开App,查看更多内容
随时随地看视频慕课网APP