내 홈 라우터(R6300v2)에서 Go로 작성된 도구를 실행하고 싶습니다. 호스트 x64 및 대상 arm을 위한 go 크로스 컴파일러를 구축해야 합니다. 공식 문서와 결과를 읽는 데 몇 분이 걸렸습니다. 정말 간단하네요: (배우는 것이 좋습니다: go)
$ git clone .../go && cd go && git checkout go1.4.2 $ cd src $ GOOS=linux GOARCH=arm GOARM=5 ./make.bash
이전에 gcc 툴체인을 크로스 컴파일한 경험에 따르면 컴파일에는 몇 분에서 10분 이상이 걸립니다. 결과 내 E3 1230v3 + 256G Plextor M6S에서 go 컴파일(라이브러리 포함)은 20초 미만, 어쩌면 10초 미만이 걸렸습니다. git clone보다 빠릅니다.
Go 컴파일러는 9개의 명령어 세트를 지원합니다. 아키텍처 전반에 걸쳐 컴파일러 품질에는 중요한 차이가 있습니다.
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中的新功能,没有其他端口那么好用。
런타임 지원은 표시 및 청소 가비지 수집기, 유효한 배열 및 문자열 슬라이싱, 유효한 고루틴(예: 스택) 지원을 포함한 기본 운영 체제 인터페이스 코드와 같은 항목을 제외하고 모든 포트에서 동일합니다. 지원하다. 필요에 따라 늘리고 줄입니다.
컴파일러는 DragonFly BSD, FreeBSD, Linux, NetBSD, OpenBSD, macOS(Darwin), Plan 9, Solaris 및 Windows 운영 체제를 대상으로 할 수 있습니다.
소스에서만 빌드할 수 있는 시스템에는 다음과 같은 추가 제약 조건이 적용됩니다.
64비트 PowerPC의 Linux의 경우 지원되는 최소 커널 버전은 2.6.37입니다. 즉, Go는 이러한 시스템에서 CentOS 6을 지원하지 않습니다. .
위 내용은 golang 컴파일이 빠른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!