Maison >développement back-end >Golang >Pourquoi les commandes Makefile impliquant « go run » entraînent-elles des erreurs d'autorisation refusée ?

Pourquoi les commandes Makefile impliquant « go run » entraînent-elles des erreurs d'autorisation refusée ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-23 17:01:02303parcourir

Why Do Makefile Commands Involving

Erreurs d'autorisation refusée dans Makefile avec Go

Malgré l'exécution réussie de "go run ." directement, les utilisateurs rencontrent des erreurs d'autorisation refusée lorsqu'ils invoquent « make run » pour exécuter la même commande via un Makefile. Cette divergence peut être attribuée à une subtilité au sein de GNU make, comme le révèle la sortie de débogage "make -d".

Le problème survient lorsque GNU tente de localiser l'exécutable go. Si un répertoire nommé "go" existe dans un répertoire spécifié dans la variable d'environnement PATH (précédant le répertoire réel contenant l'exécutable), GNU make ciblera par erreur ce répertoire au lieu de l'exécutable.

Par exemple, si un Le répertoire "/usr/bin/go/" existe et "/usr/bin" se trouve dans le PATH, GNU make rencontrera une erreur d'autorisation refusée lors de la tentative d'exécution de "go run .". Pour résoudre ce problème, assurez-vous que votre PATH ne contient aucun répertoire avec des sous-répertoires "go".

Si la suppression des répertoires problématiques du PATH n'est pas possible, vous pouvez demander à GNU make d'invoquer un shell en ajoutant un point-virgule ";" à la définition de la cible Makefile. Cela garantit que l'exécutable go est correctement résolu, résolvant ainsi les erreurs d'autorisation refusée.

run:
    go run . ;

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