Maison >développement back-end >Golang >Pourquoi Makefile génère-t-il une erreur d'autorisation refusée pour les commandes Go ?

Pourquoi Makefile génère-t-il une erreur d'autorisation refusée pour les commandes Go ?

DDD
DDDoriginal
2024-10-23 15:54:01238parcourir

Why Does Makefile Throw a Permission Denied Error for Go Commands?

Erreur d'autorisation refusée dans Makefile lors de l'exécution de Go

Vous pouvez rencontrer des erreurs d'autorisation refusée lors de l'exécution de commandes Go via un Makefile, même lorsque vous pouvez les exécuter directement. Cette divergence est due à un problème dans GNU make.

Cause :

L'erreur se produit lorsque vous avez un répertoire sur votre PATH qui contient un sous-répertoire nommé "go. " Par exemple, si vous avez "/usr/bin/go/" sur votre PATH, cela pourrait interférer avec l'exécution.

Solution :

Pour résoudre ce problème , vérifiez votre variable PATH et supprimez tous les répertoires contenant des sous-répertoires nommés « go ». Si ce n'est pas faisable, ajoutez un point-virgule (";") après la commande "go run" dans votre Makefile pour forcer GNU make à utiliser un shell.

Exemple :

run:
    go run . ;

Informations supplémentaires :

  • L'exécution de "make avec -d/--trace" montre que GNU make ne reconnaît pas "run" comme cible en raison d'un répertoire inexistant ou fichier portant ce nom.
  • Dans le cas de "run2", la commande echo force GNU make à l'interpréter comme une cible, permettant à la commande "go run" de s'exécuter avec succè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