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