英文:
Visual Studio Code with GO - Multiple main declarations (launch settings)
问题
我是你的中文翻译助手,以下是翻译好的内容:
我对VS Code和Golang都不太熟悉。
我有一个包含两个不同服务的现有项目,我们称之为A和B。
A和B都位于同一个目录下。
每当我尝试运行A或B时,都会出现以下错误:
# directory/directory/directory/A&B_Directory
./A.go:12:6: main在此块中重新声明
之前的声明在./B.go:18:6中
我尝试修改launch.json
文件,添加了以下部分:
{
"name": "Launch Program",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "FullDirectory/A.go"
}
我还尝试将program属性设置为${file}
和其他许多失败的变体。
我希望能得到一些指导,我有点迷茫。
谢谢。
英文:
I'm new to VS code and Golang.
I have an existing project containing 2 different services - let's call one A and the second one B.
Both A and B sits under the same directory.
Whenever I try to run A or B, I get the following error :
# directory/directory/directory/A&B_Directory
./A.go:12:6: main redeclared in this block
previous declaration at ./B.go:18:6
I tried playing with the launch.json
file, adding the following sections :
{
"name": "Launch Program",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "FullDirectory/A.go"
}
Also tried in the program attribute to set to ${file}
and many other variations that failed.
I'd love for some direction, I'm kinda lost.
Thanks.
答案1
得分: 10
免责声明:这不是推荐的方法,我同意其他人的观点,你应该将服务A和B分别放在不同的目录中。
回答你的问题:要启动特定的文件,请使用以下配置来模拟go run current-file
:
{
"version": "0.2.0",
"configurations": [
{
"name": "运行当前文件",
"type": "go",
"request": "launch",
"mode": "exec",
"program": "go.exe的完整路径",
"args": ["run", "${file}"],
"showLog": true
}
]
}
exec
模式用于启动预先构建的二进制文件,需要在program
属性中指定go
二进制文件的完整路径。然后,将run
和文件名(${file}
)添加到args
属性中作为参数。
英文:
Disclaimer: this is not the recommended approach, I agree with others, you shall separate the service A and B into different directory.
Answer to your question: To launch a specific file, use the following configuration to emulate go run current-file
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Run current file",
"type": "go",
"request": "launch",
"mode": "exec",
"program": "full-path-to-go.exe",
"args": ["run", "${file}"],
"showLog": true
}
]
}
Mode exec
is for launching pre-built binary given in the property program
(you must specify full path to go
binary). Then as the arguments, just add run
and filename (${file}
) to property args
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论