首頁 > 後端開發 > Golang > 為什麼我的 Go 專案出現「package XXX is not in GOROOT」錯誤?

為什麼我的 Go 專案出現「package XXX is not in GOROOT」錯誤?

Susan Sarandon
發布: 2024-12-19 00:11:10
原創
960 人瀏覽過

Why Am I Getting the

Go 專案中出現「package XXX is not in GOROOT」錯誤

當嘗試建置或執行Go 專案並遇到以下場景時,經常會出現此錯誤:

  • 專案的架構如下如下:

    src/
    |--project
       |--game
           |--entity
               |--whatever.go
           |--game_stuff.go
       |--server
    登入後複製
  • GOROOT 設定為正確的路徑(例如 C:Go)。

原因

在 Go 的最新版本(1.13 之後),不再需要設定 GOPATH 和 GOBIN 等環境變數。相反,專案的根目錄應包含一個 go.mod 文件,該文件將其表示為 Go 模組。

解決方案

要解決此問題,請按照以下步驟操作:

  1. 建立go.mod檔:在專案根目錄下,運行go mod init [remote-repo.com/username/repository].
  2. 定義主套件: 在go.mod 檔案中,指定主套件的套件路徑(例如github.com)/yourname/ calculatorv3) 及其主文件(例如main.go)。
  3. 刪除過時的環境變數:如果您之前設定了 GOPATH 和 GOBIN,請從環境配置中刪除或註解掉這些行。
  4. 重新建置或執行專案:重新執行 go build 或go run命令,現在將正確識別項目的結構並構建或運行適當的package.

示例

對於提供的示例項目結構:

  1. 在專案根目錄中建立一個go.mod檔案並包含以下內容:

    module github.com/myorg/myproject
    
    go 1.17
    
    require (
     github.com/myorg/gameutils v1.2.3
    )
    登入後複製
  2. 確保 main.go 位於project/server 目錄。
  3. 刪除或註解掉過時的環境變數:

    # GOPATH=$HOME/go  # Assuming previous GOPATH setting
    登入後複製
  4. 重新執行 go build -o server project/server 來建立專案。

附加說明

  • 如果專案使用外部軟體包,請確保使用 go get 或 go mod tidy 安裝它們。
  • 如果錯誤仍然存在,請嘗試使用 go clean -modcache 清除 Go 快取。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板