Print
카테고리: [ Development ]
조회수: 81103

개요

golang을 크로스 컴파일하여 다른 운영체제에서 실행 가능한 실행파일을 생성한다. 


컴파일 가능한 instruction set

다음과 같은 instruction set을 지원한다. 

amd64, 386 x86 insruction set(64, 32)
arm64, arm ARM instruction set(64,32)
ppc64, ppc64le PowerPC instruction set
s390x IBM z/Architecture
mips64, mips64le, mips, mipsle MIPS(64,32)
wasm WebAssembly

 

환경 변수 설정

먼저 컴파일 하고자 하는 환경에 맞게 환경 변수를 설정한다. 32bit x86 Windows에서 실행 가능한 exe 파일을 생성하기 위해 GOOS를 windows, GOARCH를 386으로 설정한다. 기본적으로 로컬 시스템의 OS와 아키텍처에 해당하는 값을 가진다. 

$ export GOOS=windows
$ export GOARCH=386  

설정 가능한 GOOS, GOARCH 조합은 다음과 같다. 

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

컴파일

리눅스 환경에서 exe로 빌드하기 위해 다음 명령을 수행한다.

$ go build -v -o loadTest.exe loadTest.go