首頁 >後端開發 >Golang >為什麼 Go 回傳「Can't Load Package: Package my_prog: Found Packages my_prog and main」?

為什麼 Go 回傳「Can't Load Package: Package my_prog: Found Packages my_prog and main」?

Barbara Streisand
Barbara Streisand原創
2024-12-13 08:49:09465瀏覽

Why Does Go Return

錯誤:「無法載入套件:封包my_prog:找到套件my_prog 和main」

在Go 中,每個套件必須駐留在GOPATH 中的單獨目錄。當您遇到錯誤「無法載入套件:套件 my_prog:找到套件 my_prog 和 main」時,這表示您有多個使用相同名稱但在不同目錄中定義的套件。

在您的情況下,您/src/my_prog/main.go目錄下有:

  • main.go,定義了main /src/my_prog 目錄下的package
  • d_interface.go 和d_struct_that_implements_the_interface.go,它們都定義了my_prog 套件

要解決此問題,您需要移動檔案 d_interface。 go 和 d_struct_that_implements_the_interface.go 進入新目錄GOPATH/src 並給它一個唯一的名稱,例如 my_prog_pkg。更新後的結構如下所示:

/bin/
/pkg/
/src/
/src/main/
/src/main/main.go
/src/my_prog_pkg/
/src/my_prog_pkg/d_interface.go
/src/my_prog_pkg/d_struct_that_implements_the_interface.go

這樣,您將擁有兩個獨立的套件:main 和 my_prog_pkg。

此要求背後的原因是 Go 套件提供了一種方法組織和模組化程式碼。每個套件都有特定的功能,並且可以在多個程式中重複使用。透過在自己的目錄中定義每個包,可以確保包彼此隔離並防止命名衝突。

以上是為什麼 Go 回傳「Can't Load Package: Package my_prog: Found Packages my_prog and main」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn