ホームページ  >  記事  >  バックエンド開発  >  Makefile を通じて Go プログラムを実行すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?

Makefile を通じて Go プログラムを実行すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 03:27:02474ブラウズ

Why Am I Getting

権限が拒否されました: 'go run' と Makefile 呼び出しの違いを調査する

Makefile を通じて Go プログラムを実行中に権限拒否エラーが発生しました困惑するかもしれません。この問題は、GNU make またはその gnulib コンポーネントのバグに起因します。根本原因は、システムの PATH 内で、実際の G​​o 実行可能ファイルが存在するディレクトリの前にある「go」という名前のディレクトリの存在にあります。

これが根本的な原因であるかどうかを判断するには、システムの PATH を調べて確認してください。 「go」という名前のサブディレクトリを含むディレクトリの場合。たとえば、/usr/bin/go/ が存在し、/usr/bin が PATH の一部である場合、この問題が発生する可能性があります。

この状況を修正するには、「go」サブディレクトリを含むすべてのディレクトリがPATH から削除されました。これが不可能な場合は、GNU make の実行にシェル呼び出しを使用することもできます。 ; を追加するMakefile ターゲットに文字を追加するだけで十分です:

run:
        go run . ;

以上がMakefile を通じて Go プログラムを実行すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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