Rumah > pembangunan bahagian belakang > Golang > Mengapa Saya Mendapat 'pakej XXX tiada dalam GOROOT' Semasa Membina Projek My Go?

Mengapa Saya Mendapat 'pakej XXX tiada dalam GOROOT' Semasa Membina Projek My Go?

Mary-Kate Olsen
Lepaskan: 2024-12-17 09:47:25
asal
448 orang telah melayarinya

Why Do I Get

"Pakej XXX tiada dalam GOROOT" Semasa Membina Projek Go

Isu:
Apabila cuba membina projek Go, mesej ralat "pakej XXX tiada dalam GOROOT" boleh muncul.

Penyelesaian:

Dalam versi baharu Go (siaran 1.13), pembolehubah persekitaran seperti GOPATH, GOBIN, dll., tidak lagi diperlukan. Sebaliknya:

  • Pastikan fail go.mod wujud pada akar projek, yang menetapkan direktori sebagai modul Go.
  • Mulakan modul menggunakan go mod init remote-repo.com /nama pengguna/repositori.
  • Nyatakan laluan pakej penuh semasa menjalankan arahan, seperti pergi COMMAND package_path/xxx. Ini menghalang pengkompil daripada menganggap pakej berada dalam GOROOT.
  • Go menggunakan ruang kerja projek atau direktori kerja semasa untuk pakej yang bukan sebahagian daripada Go SDK.
  • Untuk memasang binari boleh laku, gunakan go install.
  • Untuk menyusun boleh laku dalam direktori semasa, gunakan go bina.

Aliran Kerja:

  1. Mulakan modul Go pada akar projek menggunakan go mod init.
  2. Jalankan ujian menggunakan pergi ujian -v ./... (secara rekursif) atau pergi ujian -v ./xxx (untuk tertentu pakej).
  3. Kompilasi dan laksanakan pakej menggunakan go run ./... (secara rekursif) atau go run ./xxx (untuk pakej tertentu).

Contoh Kod untuk Versi 1:

add.go:

package main

func addition(x int, y int) int {
    return x + y
}
Salin selepas log masuk

add_test.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)
        }
    })

}
Salin selepas log masuk

main.go:

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)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'pakej XXX tiada dalam GOROOT' Semasa Membina Projek My Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan