「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Makefile が Go コマンドに対してアクセス許可拒否エラーをスローするのはなぜですか?

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

2024 年 11 月 5 日に公開
ブラウズ:722

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」コマンドが正常に実行できるようにします。 .
リリースステートメント この記事は次の場所に転載されています: 1729668177 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3