我有一个由三个文件组成的小程序,它们都属于同一个包(main).但当我做go build main.go次时,构建没有成功.当它只是一个文件(main.go)时,一切正常.

现在我花了一些精力来分离代码,看起来编译器无法找到从main.go中提取并放入这两个其他文件(与main.go位于同一目录中)的内容.这导致了undefined 'type'个错误.

如何编译这个由多个文件组成的程序?

推荐答案

New Way (Recommended):

Please take a look at this answer

老办法:

假设您正在编写一个名为myprog的程序:

将您的所有文件放在如下所示的目录中

myproject/go/src/myprog/xxx.go

然后向GOPATH添加myproject/go

然后跑

go install myprog

这样,如果需要,您就可以在myproject/go/src中添加其他包和程序.

参考:http://golang.org/doc/code.html

(新来者总是会错过这个文档,而且一开始往往不被理解.它应该得到Go团队的最大关注)

Go相关问答推荐

如何获得与cksum相同的CRC 32?

macOS上GoLand 2023.3.4中的代码导航

golang 的通用 map 功能

按键值排序字符串- Golang

Golang应用程序:所请求的资源上不存在HTTP-Control-Allow-Origin标头

租户GUID X的租户不存在self 邮箱帐户的租户(我是唯一的成员)

什么东西逃到了堆里?

如何模拟 stripe 需要 webhooks 的捕获事件?

使用Goldmark在golang中添加ChildNode会导致堆栈溢出

类型/ struct 函数的 GoDoc 示例函数

Go:如何在将 float64 转换为 float32 时判断精度损失

当函数返回一个函数时,为什么 Go 泛型会失败?

接受通道和切片的通用函数

Go 中的 HTTP 请求验证中间件

我相信我正确地在 sRGB 和线性 RGB 之间进行了转换,那么为什么深色的结果看起来更糟呢?

Golang grpc go.mod 问题

通用函数与外部包中的常见成员一起处理不同的 struct ?

不理解切片和指针

为什么 Go 中的 maps.Keys() 将 map 类型指定为 M?

使用不安全的指针从 [] 字符串中获取值