首頁 > 後端開發 > Golang > 為什麼我在建造 Go 專案時收到'package XXX is not in GOROOT”?

為什麼我在建造 Go 專案時收到'package XXX is not in GOROOT”?

Mary-Kate Olsen
發布: 2024-12-17 09:47:25
原創
448 人瀏覽過

Why Do I Get

建構Go 專案時「Package XXX is Not in GOROOT」

問題:
嘗試建置Go 專案時,錯誤訊息「 package XXX is not in GOROOT」可能

解:

在較新版本的 Go(1.13 後)中,不再需要 GOPATH、GOBIN 等環境變數。相反:

  • 確保專案根目錄下存在 go.mod 文件,該目錄將目錄指定為 Go 模組。
  • 使用 go mod init remote-repo.com 初始化模組。 /username/repository.
  • 執行指令時指定完整的套件路徑,例如 go COMMAND package_path/xxx。這可以防止編譯器假設套件位於 GOROOT 中。
  • Go 使用專案工作空間或目前工作目錄來儲存不屬於 Go SDK 的套件。
  • 要安裝可執行二進位文件,請使用 go install。
  • 要在目前目錄中編譯可執行文件,請使用go build.

工作流程:

  1. 工作流程:
  2. 使用gogo mod init 在專案根目錄初始化Go 模組。
使用下列指令執行測試go test -v ./... (遞歸地)或 go test -v ./xxx (對於特定的package)。

使用 go run ./...(遞歸)或 go run ./xxx(對於特定套件)編譯並執行套件。

版本程式碼範例1:

package main

func addition(x int, y int) int {
    return x + y
}
登入後複製

add.go:

package main

import "testing"

func TestAdd(t *testing.T) {

    t.Run("adding two positive numbers", func(t *testing.T) {
        sum := addition(2, 2)
        expected := 4

        if sum != expected {
            t.Errorf("Expected %d; but got %d", expected, sum)
        }
    })

    t.Run("adding two negative numbers", func(t *testing.T) {
        sum := addition(-3, -4)
        expected := -7

        if sum != expected {
            t.Errorf("Expected %d; but got %d", expected, sum)
        }
    })

    t.Run("adding one positive and one negative integer", func(t *testing.T) {
        sum := addition(1, -3)
        expected := -2

        if sum != expected {
            t.Errorf("Expected %d; but got %d", expected, sum)
        }
    })

}
登入後複製

package main

import "fmt"

func main() {
    var num1 int = 1
    var num2 int = 2

    sum := addition(num1, num2)
    product := multiplication(num1, num2)

    fmt.Printf("The sum of %d and %d is %d\n", num1, num2, sum)
    fmt.Printf("The multiplication of %d and %d is %d\n", num1, num2, product)
}
登入後複製
main.go:

以上是為什麼我在建造 Go 專案時收到'package XXX is not in GOROOT”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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