go build main.go 出现的问题

根目录下有两个文件
main.go

package main

func main() {
	getID()
}

learn_snowflake.go

package main

func getID() int {
	return 1
}

go build main.go
报错
undefined: getID

于是去查看了一下说明:go help build

如果要编译目录下的全部.go文件,那么只需要进入目录 go build .,所有依赖的其他包也会被编译进来,生成的结果文件就是目录的名称。所以上面的情况,我们只需要进入根目录go build .

如果只想编译目录下的指定.go文件,那么进入目录 go build aaa.go bbb.go 等列出要编译的文件,它们会被编译到一起,所有依赖的其他包也会被编译进来,生成结果文件是第一个文件的名称。但是如果aaa.go调用了ccc.go的内容,而ccc.go没有被列进来,那么就会报undefined错误。所以上面的情况,我们只需要进入根目录go build main.go learn_snowflake.go,生成main.exe

build会忽略掉_test.go文件。

如果同时编译多个包,或者只编译一个非main包,那么依然会执行编译,但是会舍弃掉结果文件,相当于在检测包是否可编译。

根目录下增加文件

pkg1
	demo11.go
pkg2
	demo21.go 
	demo22.go

go build pkg2
package pkg2 is not in GOROOT (D:\Go\src\pkg2)

go build ./pkg2
没有报错,也没有生成任何文件。

go build ./pkg1 ./pkg2
没有报错,也没有生成任何文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值