问题描述
我有一个公共存储库 https://github.com/zhksoftGo/Packet。我在里面放了一些常用的 go 文件。 目前有两个。
Packet.go under github.com/zhksoftGo/Packet
TypeDefineCactus.go under github.com/zhksoftGo/Packet/protocol/Cactus/
我在导入其中之一时遇到问题。
import "github.com/zhksoftGo/Packet" // works fine
import "github.com/zhksoftGo/Packet/protocol/Cactus" // "cannot find package"
//referer 项目 .mod 文件:
module github.com/zhksoftGo/SNowWolf
go 1.15
require (
github.com/gookit/slog v0.1.3
github.com/panjf2000/gnet v1.4.2
github.com/smartystreets/goconvey v1.6.4 // indirect
github.com/zhksoftGo/Packet v0.0.0-20210320131229-5311a044e61f
gopkg.in/ini.v1 v1.62.0
)
我已经设置了 GO111MODULE=on。有人可以帮忙吗?
解决方法
根本原因是我的生成器在生成的 Go 文件头中插入了 utf-8 BOM 字符。如果普通的 Go 文件导入生成的 Go 文件,它就会起作用。但如果生成的 Go 文件导入了另一个生成的 Go 文件,则不起作用。 所以对于 Go 源文件,我们最好使用 UTF-8。