権限が拒否されました: 'go run' と Makefile 呼び出しの違いを調査する
Makefile を通じて Go プログラムを実行中に権限拒否エラーが発生しました困惑するかもしれません。この問題は、GNU make またはその gnulib コンポーネントのバグに起因します。根本原因は、システムの PATH 内で、実際の Go 実行可能ファイルが存在するディレクトリの前にある「go」という名前のディレクトリの存在にあります。
これが根本的な原因であるかどうかを判断するには、システムの PATH を調べて確認してください。 「go」という名前のサブディレクトリを含むディレクトリの場合。たとえば、/usr/bin/go/ が存在し、/usr/bin が PATH の一部である場合、この問題が発生する可能性があります。
この状況を修正するには、「go」サブディレクトリを含むすべてのディレクトリがPATH から削除されました。これが不可能な場合は、GNU make の実行にシェル呼び出しを使用することもできます。 ; を追加するMakefile ターゲットに文字を追加するだけで十分です:
run: go run . ;
以上がMakefile を通じて Go プログラムを実行すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。