英文:
vscode Code Runner cannot run multi go files
问题
例如,我有一个名为demo
的简单项目
demo
├── go.mod
├── main.go
└── sum.go
以下是代码,对于go.mod
,你可以在demo目录下运行go mod init
来自动生成(但你也可以自己创建)
// main.go
package main
import "fmt"
func main() {
num3 := sum(1, 2)
fmt.Println(num3)
}
// sum.go
package main
func sum(num1 int, num2 int) int {
return num1 + num2
}
// go.mod
module demo
go 1.17
现在,在main.go
文件中,右键单击鼠标→运行代码,这意味着你将使用Code Runner运行main.go,但会打印一个错误
# command-line-arguments
demo/main.go:6:10: undefined: sum
这个错误的原因是Code Runner只运行main.go
文件,如果我们在终端中cd
到demo路径并运行go run .
,代码就可以正常运行。
我们如何解决这个问题?
英文:
For example, I have a simple project called demo
demo
├── go.mod
├── main.go
└── sum.go
Here is the code, for go.mod
, you can run go mod init
under demo directory to generate automatically(but you can create in yourself to)
// main.go
package main
import "fmt"
func main() {
num3 := sum(1, 2)
fmt.Println(num3)
}
// sum.go
package main
func sum(num1 int, num2 int) int {
return num1 + num2
}
// go.mod
module demo
go 1.17
Now in main.go
file, right click mouse → Run Code, that means you will run main.go with Code Runner, but it will print an error
# command-line-arguments
demo/main.go:6:10: undefined: sum
The reason for this error is that Code Runner only runs the main.go
file, if we cd
to demo path in the Terminal and run go run .
, the code can run very well.
How can we solve this problem?
答案1
得分: 1
如果我们想要使用Code Runner运行代码,我们应该添加一些配置,让Code Runner能够进入目标文件夹并运行"go run ."。
打开VSCode设置页面,点击右上角的"view json"按钮
将以下配置添加到json中
"code-runner.executorMap": {
"go": "cd $dir && go run .",
},
"code-runner.executorMapByGlob": {
"$dir/*.go": "go"
},
请注意,设置json文件中可能已经有了"code-runner.executorMapByFileExtension",但这与"code-runner.executorMap"不同,请不要将"go": "cd $dir && go run ."添加到"code-runner.executorMapByFileExtension"中。
添加配置后,现在您可以使用Code Runner运行您的go代码,无需重新启动或重新加载VSCode。
英文:
If we want to run the code with Code Runner, we should add some config that can lets the Code Runner cd
into the target folder and then run go run .
.
open vscode setting page, click view json
button on the top right corner
Add the following config to the json
"code-runner.executorMap": {
"go": "cd $dir && go run .",
},
"code-runner.executorMapByGlob": {
"$dir/*.go": "go"
},
Be aware that the settings json may already have "code-runner.executorMapByFileExtension"
, but this is not the same with "code-runner.executorMap"
, do not add "go": "cd $dir && go run .",
to "code-runner.executorMapByFileExtension"
.
After adding the config, now you can run your go code with Code Runner, you don't need restart or reload vscode.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论