Cross compile adalah kemampuan compiler untuk meng-compile di platform tertentu, tetapi proses pengerjaannya di platform yang berbeda. Contoh: kita bikin program di OS X lalu kita compile untuk jalan di Windows. Itu lah cross compile.
Kasus yang akan kita coba kurang lebih sama, yaitu membuat program di OS X dan di jalankan di windows dengan menggunakan bahasa pemrograman golang.
- OS X disini kita sebut sebagai Host OS (developing on).
- Windows kita sebut sebagai Target OS (running on).
Sebelum kita mulai ada beberapa istilah di environment golang yang harus kita pahami dulu, yaitu :
- $GOHOSTARCH : Architecture processor yang di pake untuk develop. Dalam hal ini amd64 (64 bit).
- $GOHOSTOS : Operating system yang di pake untuk develop. Dalam hal ini darwin (OS X).
- $GOARCH : Architecture processor yang digunakan untuk menjalankan program. Dalam hal ini amd64 (64 bit).
- $GOOS : Operating system yang digunakan untuk menjalankan program. Dalam hal ini windows.
Berikut contoh environment di OS X :
go env |
Disitu terlihat sama antara $GOHOSTARCH dan $GOARCH begitu juga sebaliknya antara $GOHOSTOS dan $GOOS.
Untuk itu kita harus menyesuaikan $GOARCH dan $GOOS menjadi :
Untuk itu kita harus menyesuaikan $GOARCH dan $GOOS menjadi :
- amd64 untuk $GOARCH
- windows untuk $GOOS
Caranya adalah sebagai berikut :
- Masuk ke directory source code go
$ cd /usr/local/go/src
- Jalankan perintah berikut.
$ sudo GOOS=windows ./make.bash
Sekarang saatnya bikin program sederhana untuk di jalankan di windows. Berikut snapshoot programnya :
Setelah itu kita compile untuk jalan di mesin windows dengan cara sebagai berikut
Wow... begitu mudahnya melakukan cross compile dengan golang. Cukup membuat satu program dan bisa kita compile di beberapa platform seperti OS X, Linux ataupun Windows.
package main import "fmt" import "runtime" func main() { fmt.Printf("Hello %s/%s\n", runtime.GOOS, runtime.GOARCH) }
Setelah itu kita compile untuk jalan di mesin windows dengan cara sebagai berikut
$ env GOOS=windows GOARCH=amd64 go build -o hello_amd64.exe hello.goHasilnya setelah kita jalan seperti ini
windows |
OS X |
Wow... begitu mudahnya melakukan cross compile dengan golang. Cukup membuat satu program dan bisa kita compile di beberapa platform seperti OS X, Linux ataupun Windows.
Untuk sementara sekian dulu dari kami, nantikan posting-posting kami selanjutnya berkaitan dengan golang.
No comments:
Post a Comment