簡體   English   中英

不能將 lib.Const(lib.Version 類型的常量 16777216)用作 lib.Version

[英]Cannot use lib.Const (constant 16777216 of type lib.Version) as lib.Version

我遇到了一個奇怪的錯誤。 我有這個較大的項目,可以使用典型的go build進行良好編譯。 但是,當我切換到 TinyGo (v0.8.0) 時。 我從這段代碼中得到了上述錯誤:

func main() {

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

我更改了名稱以減少混淆,但符號完全相同。 lib.Constlib.Version的常量。 指針也不是。

我知道這是一個非常具體的問題,因為它在 realm TinyGo 中。 這更像是“記錄在案”......而且我什至不得不創建“tinygo”標簽,因為這個問題非常具體。 但要添加更多細節:

  • 在添加上述代碼之前,它一直在編譯。
  • 確切的構建命令是tinygo build -target=wasm -o build/out.wasm src/main-wasm.go

這是編譯器的一個錯誤: https://github.com/tinygo-org/tinygo/issues/726

它源於以不同的名稱兩次導入相同的 package。 在這種情況下,它是:

// file1:
import "./lib"

// file2:
import "../lib"

以上制作了 package“lib”的 2 個實例。 使用普通 Go 編譯器時,通常可以這樣做。 但是 TinyGo 沒有適當的機制來處理這個問題。

建議將 append 到$GOPATH以防止使用相對路徑:

// file1:
import "lib"

// file2:
import "lib"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM