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

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

Susan Sarandon
Susan Sarandonasal
2024-12-19 00:11:10960semak imbas

Why Am I Getting the

Ralat "pakej XXX tiada dalam GOROOT" dalam Projek Go

Ralat ini sering berlaku apabila cuba membina atau menjalankan projek Go dan menghadapi senario berikut:

  • Projek ini berstruktur sebagai berikut:

    src/
    |--project
       |--game
           |--entity
               |--whatever.go
           |--game_stuff.go
       |--server
  • GOROOT ditetapkan ke laluan yang betul (cth., C:Go).

Sebab

Dalam versi terkini Go (post 1.13), menetapkan pembolehubah persekitaran seperti GOPATH dan GOBIN tidak lagi diperlukan. Sebaliknya, projek itu harus mengandungi fail go.mod pada akarnya, yang menandakannya sebagai modul Go.

Penyelesaian

Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Buat fail go.mod: Dalam direktori akar projek, jalankan go mod init [remote-repo.com/username/repository].
  2. Tentukan pakej utama: Dalam fail go.mod, nyatakan laluan pakej pakej utama (cth., github.com /yourname/calculatorv3) dan fail utamanya (cth., main.go).
  3. Alih keluar pembolehubah persekitaran usang: Jika anda telah menetapkan GOPATH dan GOBIN sebelum ini, padamkan atau ulas baris tersebut daripada konfigurasi persekitaran anda.
  4. Bina semula atau jalankan projek: Jalankan semula go build atau arahan go run, yang kini akan mengenali struktur projek dengan betul dan membina atau menjalankan yang sesuai pakej.

Contoh

Untuk contoh struktur projek yang disediakan:

  1. Buat fail go.mod dalam direktori akar projek dan sertakan yang berikut:

    module github.com/myorg/myproject
    
    go 1.17
    
    require (
     github.com/myorg/gameutils v1.2.3
    )
  2. Pastikan main.go terletak dalam projek/pelayan direktori.
  3. Alih keluar atau ulas pembolehubah persekitaran usang:

    # GOPATH=$HOME/go  # Assuming previous GOPATH setting
  4. Jalankan semula go build -o projek/pelayan pelayan untuk membina projek.

Nota Tambahan

  • Jika projek menggunakan pakej luaran, pastikan ia dipasang menggunakan go get atau go mod tidy.
  • Jika ralat masih berterusan, cuba kosongkan cache Go menggunakan go clean -modcache.

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

Kenyataan:
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