Menggunakan uname untuk mendapatkan seni bina pemproses dalam mac memberikan hasil yang salah apabila membina binari go untuk amd64

王林
Lepaskan: 2024-02-09 13:09:07
ke hadapan
514 orang telah melayarinya

当为 amd64 构建 go 二进制文件时,使用 uname 在 mac 中获取处理器架构会给出错误的结果

editor php Xigua menemui masalah semasa memproses fail binari amd64 build go. Pada sistem Mac, menggunakan uname untuk mendapatkan seni bina pemproses boleh membawa kepada keputusan yang salah. Isu ini mungkin memberi kesan kepada proses penyusunan dan pembinaan, jadi ia perlu diambil perhatian. Cara yang betul untuk mendapatkan seni bina pemproses adalah melalui masa jalan fungsi terbina dalam go.GOARCH. Ini boleh mengelakkan ralat yang disebabkan oleh uname dan memastikan ketepatan penyusunan dan pembinaan.

Kandungan soalan

Saya mempunyai perkhidmatan golang dan perlu mendapatkan jenis seni bina pemproses

archCmd := exec.Command("uname", "-m")
arch, _ := archCmd.CombinedOutput()
Salin selepas log masuk

Saya menjalankan binari yang sama pada mesin Intel dan Arm. Binari dibina dengan

GOOS=darwin GOARCH=amd64
Salin selepas log masuk

Pada mesin ARM, ini mendapat x86_64. Ini nampaknya berlaku sejak saya membina dengan GOARCH=amd64 . Tetapi saya tidak pasti mengapa ini berlaku. Jika saya ingin menjalankan binari binari yang sama pada mesin intel dan lengan, apakah alternatif saya?

Penyelesaian

Petikan@hrdyKomen menerangkan isu ini:

Memetik jawapan superuser yang berasingan: https://www.php.cn/link/211fff9e65c0e47a790c629116e32996

...Ini memerlukan beberapa logik bersyarat untuk mengesan sistem pengendalian dan menghurai untuk mengesan jenis CPU Apple. Ini mungkin rosak pada masa hadapan jika nilai rentetan ini berubah.

archCmd := exec.Command("sysctl", "machdep.cpu.brand_string")
arch, _ := archCmd.CombinedOutput()
Salin selepas log masuk

Sekali lagi, kredit kepada @selalerercapitolis untuk pautan jawapan.

Atas ialah kandungan terperinci Menggunakan uname untuk mendapatkan seni bina pemproses dalam mac memberikan hasil yang salah apabila membina binari go untuk amd64. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!