Maison >développement back-end >Golang >Pourquoi mon projet Go affiche-t-il « Le package XXX n'est pas dans GOROOT » ?

Pourquoi mon projet Go affiche-t-il « Le package XXX n'est pas dans GOROOT » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 04:06:13360parcourir

Why Does My Go Project Show

"Le package XXX n'est pas dans GOROOT" lors de la création d'un projet Go

Débogage de l'erreur "Le projet/jeu du package n'est pas dans GOROOT" nécessite de comprendre le concept des modules Go et la présentation du projet.

Modules Go et projet Structure :

Dans les versions plus récentes de Go (post 1.13), les modules Go sont utilisés pour gérer les dépendances des packages. Un module Go est généralement un répertoire contenant un fichier go.mod et du code source. Le fichier go.mod déclare le nom du module, ses dépendances et son emplacement dans le système de fichiers.

Résolution du problème :

  1. Ayez un fichier go.mod à la racine du projet :
    Assurez-vous que le répertoire racine du projet contient un fichier go.mod. Ce fichier doit être situé dans le référentiel et déclarer le nom du module du projet.
  2. GOROOT et GOPATH ne sont pas obligatoires :
    Dans les versions plus récentes de Go, les variables d'environnement telles que GOROOT et GOPATH sont n'est plus nécessaire. Les dépendances des packages sont gérées via go.mod.
  3. Examinez la commande de construction :
    Vérifiez la commande que Goland utilise pour construire le projet. Cela devrait être similaire à :

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

    Cette commande ne doit pas spécifier l'indicateur GOROOT.

  4. En supposant un emplacement de paquet incorrect :
    Le message d'erreur suggère que le projet s'attend à ce que le package projet/jeu soit dans GOROOT. Cependant, ce package doit se trouver dans l'arborescence des sources du projet.
  5. Vérifiez le chemin du package :
    Assurez-vous que le chemin du package dans le code source (par exemple, "projet/jeu") correspond au chemin utilisé dans la commande build.

Workflow avec Nested Packages :

Si votre projet comporte des packages imbriqués, tels que « projet/jeu/entité », vous devez suivre ces étapes supplémentaires :

  1. Créer go. fichiers mod pour les sous-répertoires :
    Créez un fichier go.mod dans chaque sous-répertoire contenant son propre package. Ce fichier doit déclarer le nom du sous-module et sa dépendance par rapport au module parent.
  2. Importer des packages dans les sous-répertoires :
    Dans le code source du sous-répertoire, importez le package depuis le module parent. en utilisant la syntaxe :

    importer "parent/sous-module"

En suivant ces étapes, vous pouvez résoudre l'erreur « le projet/jeu de package n'est pas dans GOROOT » et construire correctement votre projet Go avec des packages imbriqués.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn