ホームページ >バックエンド開発 >Golang >Makefile が Go コマンドに対してアクセス許可拒否エラーをスローするのはなぜですか?

Makefile が Go コマンドに対してアクセス許可拒否エラーをスローするのはなぜですか?

DDD
DDDオリジナル
2024-10-23 15:54:01239ブラウズ

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

Go の実行時に Makefile でアクセス許可が拒否されました

Makefile を介して Go コマンドを実行すると、「アクセスが拒否されました」エラーが発生することがあります。直接実行できます。この不一致は、GNU make の問題が原因で発生します。

原因:

このエラーは、PATH 上に「go.」という名前のサブディレクトリを含むディレクトリがある場合に発生します。 」たとえば、PATH に「/usr/bin/go/」がある場合、実行が妨げられる可能性があります。

解決策:

この問題に対処するには、PATH 変数を確認し、「go」という名前のサブディレクトリを含むディレクトリをすべて削除します。それが不可能な場合は、Makefile の「go run」コマンドの後にセミコロン (「;」) を追加して、GNU make にシェルの使用を強制します。

例:

run:
    go run . ;

追加の洞察:

  • 「make with -d/--trace」を実行すると、ディレクトリが存在しないか、または存在しないため、GNU make が「run」をターゲットとして認識しないことがわかります。
  • 「run2」の場合、echo コマンドは GNU make にそれをターゲットとして解釈させ、「go run」コマンドを正常に実行できるようにします。

以上がMakefile が Go コマンドに対してアクセス許可拒否エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。