L'éditeur php Xigua a découvert un problème lors du traitement des fichiers binaires amd64 build go. Sur les systèmes Mac, l'utilisation d'uname pour obtenir l'architecture du processeur peut conduire à des résultats incorrects. Ce problème peut avoir un impact sur le processus de compilation et de construction, il doit donc être noté. La bonne façon d'obtenir l'architecture du processeur consiste à utiliser la fonction runtime.GOARCH intégrée de go. Cela peut éviter les erreurs causées par uname et garantir l'exactitude de la compilation et de la construction.
J'ai un service Golang et j'ai besoin d'obtenir le type d'architecture du processeur
archCmd := exec.Command("uname", "-m") arch, _ := archCmd.CombinedOutput()
J'exécute le même binaire sur les machines Intel et Arm. Les binaires sont construits avec
GOOS=darwin GOARCH=amd64
Sur les machines ARM, cela obtient x86_64. Cela semble se produire depuis que j'ai construit avec GOARCH=amd64 . Mais je ne sais pas pourquoi cela se produit. Si je souhaite exécuter le même binaire de build sur les machines Intel et Arm, quelles sont mes alternatives ?
Citation@hrdy
Commentaire décrivant ce problème :
Citant une réponse distincte du superutilisateur : //m.sbmmt.com/link/211fff9e65c0e47a790c629116e32996
...Cela nécessitera une logique conditionnelle pour détecter le système d'exploitation et une analyse pour détecter le type de processeur Apple. Cela pourrait être interrompu à l'avenir si la valeur de cette chaîne change.
archCmd := exec.Command("sysctl", "machdep.cpu.brand_string") arch, _ := archCmd.CombinedOutput()
Encore une fois, merci à @selalerercapitolis
pour le lien de réponse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!