我刚开始使用 Go,我喜欢它!我试图使我的项目结构更易于管理,而不是将所有内容都放在我的 main.go 中
所以现在我有了这样的结构。
src/
-> main.go
-> routes.go
-> handlers/
--> user_handlers.go
但是当我尝试使用以下命令构建它时
go build -v -o ./bin/my_bin ./src/...
我收到这个错误
cannot use -o with multiple packages
但是如果我把它做成这样的平面结构
src/
-> main.go
-> routes.go
-> user_handlers.go
它工作得很好,我所有的文件的顶部都有“package main”。
我做错了什么?
最佳答案
包名必须与目录名匹配。将源文件移动到新目录还需要更改包名称。
foo/foo.go // package foo
foo/bar/bar.go // package bar
foo/bar/qux.go // package bar
PATH 与包名称无关。
Package foo: /some/path/some/where/foo
这允许创建和导入多个“foo”包,前提是您的导入指定了“foo”的所需位置
附言包名称的约定是小写,没有标点符号(例如,没有 _'s)
关于go - 递归编译文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095423/