我遇到了一个奇怪的错误。我有一个更大的项目,它可以很好地编译典型的go build。但是,当我切换到TinyGo时(v0.8.0)。我从下面的代码中得到了上面的错误:
func main() {
_ = lib.NewObject{
Version: lib.Const,
}
}我改了名字,以减少混淆,但符号是完全相同的。lib.Const是lib.Version的常数。指针也不是。
我理解这是一个非常具体的问题,因为它在TinyGo领域。这更像是“备案”..。此外,我甚至不得不创建"tinygo“标签,因为这个问题非常具体。但为了补充更多细节:
在添加上述代码之前,它一直在编译tinygo build -target=wasm -o build/out.wasm src/main-wasm.go。
发布于 2019-11-15 21:03:23
这是编译器的一个bug:https://github.com/tinygo-org/tinygo/issues/726
它源于两次以不同的名称导入相同的包。在这种情况下,它是:
// file1:
import "./lib"
// file2:
import "../lib"上面列出了包"lib“的两个实例。在使用普通Go编译器时,通常可以这样做。但TinyGo没有适当处理这一问题的机制。
建议将其附加到$GOPATH中,以防止使用相对路径:
// file1:
import "lib"
// file2:
import "lib"https://stackoverflow.com/questions/58871108
复制相似问题