【问题标题】:Go install exclude file去安装排除文件
【发布时间】:2023-04-08 21:04:02
【问题描述】:

我创建了一个 go 脚本,它可以编译、启动、检查状态并结束我创建的 Web 服务(也在 go 中)。但是,我遇到了障碍。

使用编译功能,我运行以下命令:

go install .

这给出了以下错误:

./script.go:55: main redeclared in this block
previous declaration at ./hello.go:8

这是有道理的,因为我有两个不同的文件,都带有 main func 和 main 包。我还尝试将脚本移动到另一个文件夹,然后将运行的命令更改为:

go install {path}

其中 {path} 等于我要安装/编译的路径。然后我得到以下错误:

exit status 1: can't load package: package /var/www/test.com/go: import "/var/www/test.com/go": cannot import absolute path

因此,总而言之,我只想到了一种解决方案(如果我的方法不是最好的,我愿意听取其他人的意见)。我的想法是排除脚本文件与其余文件一起编译,但我不确定如何。

我做了一些研究,但找不到简单的方法(例如 go install 命令的 --exclude 标志)。有人知道如何完成我想要实现的目标吗?

谢谢。

【问题讨论】:

  • 我认为您尝试将文件分成不同的包是正确的方法。最新的错误告诉您go 的构建系统未能加载指定的包,这是一个不同的错误(与您的原始问题没有直接关系)。在不知道您的 GOPATH 值和项目的目录结构的情况下,很难提出解决此问题的解决方案。
  • 如“无法导入绝对路径”错误所示,go 工具使用导入路径,而不是绝对路径。使用导入路径运行 go install

标签: go package installation


【解决方案1】:

你可以给 hello.go 一个不同的包名,应该可以。还是我错过了什么?

问候 蒂姆

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 2015-02-15
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多