Go에서 크로스 컴파일

Go를 메인으로 쓰는 윈도우에서 개발하고 테스트 다 한담에 실제 서버에 배포할때는 시스템에 맞게 빌드해야 하는데 한번 테스트 해보고 여기 정리해둠.

GOOS는 타깃보드OS이고 GOARCH는 타깃보드 아키텍트임. 지원리스트는 하단에 표로 정리해움.

윈도우에서 간단한 예제를 만들고

//test.go
package main

import "fmt"

func main() {
	fmt.Println("test입니다")
}

이걸 하드커널 Odroid HC1 (XU4 시리즈) 에서 빌드할려면

//linuxBuild.cmd
set GOOS=linux
set GOARCH=arm
go build test.go

이런 cmd 파일을 하나 만들어준다. 실행하면 test 라는 바이너리 파일이 생기는데 이걸 Odroid에 업로드 하고 실행권한을 주고(755나 700 등등) 실행을 하면 아래와 같은 결과가 나옴

Odroid HC1 에서 테스트

 

하드커널 Odroid N2의 경우에는

//linux64Build.cmd
set GOOS=linux
set GOARCH=arm64
go build test.go

Odroid N2에서 테스트

 

GOOS와 GOARCH 지원 리스트

$GOOS $GOARCH
aix ppc64
android 386
android amd64
android arm
android arm64
darwin 386
darwin amd64
darwin arm
darwin arm64
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
illumos amd64
js wasm
linux 386
linux amd64
linux arm
linux arm64
linux ppc64
linux ppc64le
linux mips
linux mipsle
linux mips64
linux mips64le
linux s390x
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
openbsd arm
openbsd arm64
plan9 386
plan9 amd64
plan9 arm
solaris amd64
windows 386
windows amd64

참고 : https://golang.org/doc/install/source

크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.