使用GO的Visual Studio Code – 多个main声明(启动设置)

huangapple go评论139阅读模式
英文:

Visual Studio Code with GO - Multiple main declarations (launch settings)

问题

我是你的中文翻译助手,以下是翻译好的内容:

我对VS Code和Golang都不太熟悉。
我有一个包含两个不同服务的现有项目,我们称之为A和B。
A和B都位于同一个目录下。

每当我尝试运行A或B时,都会出现以下错误:

  1. # directory/directory/directory/A&B_Directory
  2. ./A.go:12:6: main在此块中重新声明
  3. 之前的声明在./B.go:18:6

我尝试修改launch.json文件,添加了以下部分:

  1. {
  2. "name": "Launch Program",
  3. "type": "go",
  4. "request": "launch",
  5. "mode": "debug",
  6. "program": "FullDirectory/A.go"
  7. }

我还尝试将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 :

  1. # directory/directory/directory/A&B_Directory
  2. ./A.go:12:6: main redeclared in this block
  3. previous declaration at ./B.go:18:6

I tried playing with the launch.json file, adding the following sections :

  1. {
  2. "name": "Launch Program",
  3. "type": "go",
  4. "request": "launch",
  5. "mode": "debug",
  6. "program": "FullDirectory/A.go"
  7. }

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

  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "name": "运行当前文件",
  6. "type": "go",
  7. "request": "launch",
  8. "mode": "exec",
  9. "program": "go.exe的完整路径",
  10. "args": ["run", "${file}"],
  11. "showLog": true
  12. }
  13. ]
  14. }

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:

  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "name": "Run current file",
  6. "type": "go",
  7. "request": "launch",
  8. "mode": "exec",
  9. "program": "full-path-to-go.exe",
  10. "args": ["run", "${file}"],
  11. "showLog": true
  12. }
  13. ]
  14. }

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.

huangapple
  • 本文由 发表于 2017年8月30日 20:56:59
  • 转载请务必保留本文链接:https://go.coder-hub.com/45961085.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定