개요
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