0

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

func main() {

    _ = lib.NewObject{
         Version: lib.Const,
    }
}

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

我理解这是一个非常具体的问题,因为它属于 TinyGo 领域。这更像是“记录在案”......而且我什至不得不创建“​​tinygo”标签,因为这个问题非常具体。但要添加更多细节:

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

1 回答 1

1

这是编译器的一个错误: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"
于 2019-11-15T21:03:23.760 回答