不能使用库.常量(常数16777216类型为库.版本)作为库.版本



我遇到了一个奇怪的错误。我有一个更大的项目,可以很好地编译典型的go build。但是当我切换到TinyGo(v0.8.0)时。我从这段代码中得到上面的错误:

func main() {
_ = lib.NewObject{
Version: lib.Const,
}
}

我更改了名称以减少混淆,但符号完全相同。lib.Constlib.Version的常数。指针也不是。

我知道这是一个非常具体的问题,因为它属于TinyGo领域。这更像是"记录"...另外,我什至不得不创建"tinygo"标签,因为这个问题非常具体。但要添加更多详细信息:

  • 在添加上述代码之前,它一直在编译。
  • 确切的构建命令是tinygo build -target=wasm -o build/out.wasm src/main-wasm.go

这是编译器的错误:https://github.com/tinygo-org/tinygo/issues/726

它源于以不同的名称两次导入相同的包。在本例中,它是:

// file1:
import "./lib"
// file2:
import "../lib"

上面做了包"lib"的 2 个实例。使用普通的 Go 编译器时,这通常是可以的。但是TinyGo没有适当的机制来正确处理这个问题。

建议追加到$GOPATH以防止使用相对路径:

// file1:
import "lib"
// file2:
import "lib"

相关内容

  • 没有找到相关文章

最新更新