php エディタ Xigua は、amd64 build go バイナリ ファイルの処理中に問題を発見しました。 Mac システムでは、uname を使用してプロセッサ アーキテクチャを取得すると、不正確な結果が生じる可能性があります。この問題はコンパイルとビルドのプロセスに影響を与える可能性があるため、注意する必要があります。プロセッサ アーキテクチャを取得する正しい方法は、go の組み込み関数 runtime.GOARCH を使用することです。これにより、uname によって引き起こされるエラーを回避し、コンパイルと構築の正確さを保証できます。
golang サービスがあり、プロセッサのアーキテクチャ タイプを取得する必要があります
リーリーIntel マシンと Arm マシンで同じバイナリを実行しています。バイナリは
でビルドされます リーリーARM マシンでは、これは x86_64 を取得します。これは、 GOARCH=amd64 でビルドして以来発生しているようです。しかし、なぜこれが起こっているのかわかりません。 同じビルド バイナリを Intel マシンと Arm マシンで実行したい場合、代替手段は何ですか?
引用@hrdy
この問題を説明するコメント:
別のスーパーユーザーの回答を引用: https://www.php.cn/link/211fff9e65c0e47a790c629116e32996
...これには、オペレーティング システムを検出するための条件付きロジックと、Apple CPU タイプを検出するための解析が必要になります。この文字列値が変更されると、将来壊れる可能性があります。
リーリー繰り返しになりますが、回答リンクについては @selalerercapitolis
に感謝します。
以上がMac で uname を使用してプロセッサ アーキテクチャを取得すると、amd64 用の go バイナリをビルドするときに間違った結果が得られるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。