我有一个由三个文件组成的小程序,它们都属于同一个包(main)。但是当我做 go build main.go
构建没有成功。当它只有一个文件( main.go
)时,一切正常。
现在我花了一些努力来分离代码,看起来编译器无法找到从 main.go
中取出并放入这两个其他文件(与主.去)。这导致 undefined 'type'
错误。
如何编译这个由多个文件组成的程序?
原文由 Vitaly 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个由三个文件组成的小程序,它们都属于同一个包(main)。但是当我做 go build main.go
构建没有成功。当它只有一个文件( main.go
)时,一切正常。
现在我花了一些努力来分离代码,看起来编译器无法找到从 main.go
中取出并放入这两个其他文件(与主.去)。这导致 undefined 'type'
错误。
如何编译这个由多个文件组成的程序?
原文由 Vitaly 发布,翻译遵循 CC BY-SA 4.0 许可协议
When you separate code from main.go
into for example more.go
, you simply pass that file to go build
/ go run
/ go install
还有。
所以如果你以前跑过
go build main.go
你现在只是
go build main.go more.go
作为进一步的信息:
go build --help
状态:
如果参数是 .go 文件列表,build 会将它们视为指定单个包的源文件列表。
请注意 go build
和 go install
不同于 go run
前两个状态期望 包名称 作为参数,而后者期望 go files 。但是,前两个也将像 go install 一样接受 go 文件。
如果你想知道:构建将只是 build
包/文件, install
将在你的 GOPATH 中生成对象和二进制文件,以及 run
程序。
原文由 Kissaki 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答879 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.6k 阅读✓ 已解决
新方式( _推荐_):
请看看这个答案。
旧方法:
假设您正在编写一个名为 myprog 的程序:
将所有文件放在这样的目录中
然后添加
myproject/go
到 GOPATH并运行
这样,如果需要,您就可以在 myproject/go/src 中添加其他包和程序。
参考:http: //golang.org/doc/code.html
(这个文档总是被新手错过,而且一开始经常被误解。它应该得到 Go 团队 IMO 的最大关注)