首頁 >後端開發 >Golang >為什麼我的Go專案顯示「Package XXX is not in GOROOT」?

為什麼我的Go專案顯示「Package XXX is not in GOROOT」?

Patricia Arquette
Patricia Arquette原創
2024-12-21 04:06:13359瀏覽

Why Does My Go Project Show

建構Go 專案時出現「Package XXX is not in GOROOT」

偵錯「package project/game is not in GOOTis」錯誤需要了解Go 模組和專案佈局的概念。

Go 模組和專案結構:

在較新版本的 Go(1.13 後)中,Go 模組用於管理套件依賴項。 Go 模組通常是包含 go.mod 檔案和原始碼的目錄。 go.mod 檔案聲明了模組的名稱、其依賴項以及它在檔案系統中的位置。

解決問題:

  1. 項目根目錄下有一個go.mod 檔案:
    確保專案根目錄包含一個go.mod 檔。該檔案必須位於儲存庫內並聲明專案的模組名稱。
  2. 不需要 GOROOT 和 GOPATH:
    在較新版本的 Go 中,GOROOT 和 GOPATH 等環境變數是不再需要了。套件依賴項透過 go.mod 進行管理。
  3. 檢查建置指令:
    驗證 Goland 用於建置專案的指令。它應該類似於:

    go build -o C:UsersusernameAppDataLocalTemp___go_build_project_server.exe project/server

    此指令不應指定 GOROOT 標誌。

  4. 假設包裹位置不正確:
    錯誤訊息表明該項目希望項目/遊戲包位於 GOROOT 中。但是,該套件應該位於專案的原始程式碼樹中。
  5. 檢查套件路徑:
    確保原始程式碼中的套件路徑(例如「專案/遊戲」)與建置指令中使用的路徑相符。

巢狀的工作流程包:

如果您的專案有巢狀包,例如“專案/遊戲/實體”,您應該遵循以下附加步驟:

  1. 建立go.packages。子目錄的 mod 檔案:
    在每個包含自己的套件的子目錄中建立一個 go.mod 檔案。該檔案應聲明子模組的名稱以及對父模組的依賴關係。
  2. 導入子目錄中的套件:
    在子目錄的源代碼中,從父模組導入套件使用語法:

    導入"parent /submodule"

按照以下步驟,您可以解決「包裝項目/遊戲不在GOROOT 中」錯誤,並使用嵌套包正確建立 Go 專案。

以上是為什麼我的Go專案顯示「Package XXX is not in GOROOT」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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