Si vous souhaitez exécuter un outil écrit en go sur votre routeur domestique (R6300v2), vous devez créer un compilateur croisé go pour l'hôte x64 et le bras cible. a pris quelques minutes pour lire le document officiel, et les résultats ont été aussi simples que : (Recommandé : GO )
$ git clone .../go && cd go && git checkout go1.4.2 $ cd src $ GOOS=linux GOARCH=arm GOARM=5 ./make.bash
D'après mon précédente expérience de compilation croisée de GCC Toolchain, compilez Cela prend de quelques minutes à plus de dix minutes. Résultats Sur mon E3 1230v3 + 256G Plextor M6S, la compilation (y compris les bibliothèques) a pris moins de 20 secondes, peut-être moins de 10 secondes. Plus rapide que git clone.
Le compilateur Go prend en charge neuf jeux d'instructions. Il existe des différences importantes dans la qualité du compilateur selon les architectures.
amd64(也称为x86-64) 成熟的实现。 386(x86或x86-32) 与amd64端口相当。 arm(ARM) 支持Linux,FreeBSD,NetBSD,OpenBSD和Darwin二进制文件。没有其他端口广泛使用。 arm64(AArch64) 支持Linux和Darwin二进制文件。1.5中的新功能,没有其他端口那么好用。 ppc64, ppc64le (64位PowerPC大端和小端) 支持Linux二进制文件。1.5中的新功能,没有其他端口那么好用。 mips, mipsle (32位MIPS大端和小端) 支持Linux二进制文件。1.8中的新功能,没有其他端口那么好用。 mips64, mips64le (64位MIPS大端和小端) 支持Linux二进制文件。1.6中的新功能,没有其他端口那么好用。 s390x (IBM System z) 支持Linux二进制文件。1.7中的新功能,没有其他端口那么好用。 wasm (WebAssembly) 定位到WebAssembly平台。1.11中的新功能,没有其他端口那么好用。
La prise en charge de l'exécution est la même pour tous les ports, à l'exception de choses telles que le code d'interface du système d'exploitation sous-jacent, y compris un garbage collector par marquage et balayage, un découpage de tableau et de chaîne valide et la prise en charge d'une prise en charge valide. pour les goroutines (par exemple pile). Grandissez et rétrécissez à la demande.
Le compilateur peut cibler les systèmes d'exploitation DragonFly BSD, FreeBSD, Linux, NetBSD, OpenBSD, macOS (Darwin), Plan 9, Solaris et Windows.
Les contraintes supplémentaires suivantes s'appliquent aux systèmes qui ne peuvent construire qu'à partir des sources :
Pour Linux sur PowerPC 64 bits, la version minimale du noyau prise en charge est 2.6.37, ce qui signifie que Go ne prend pas en charge CentOS 6 sur ces systèmes.
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!