Ada hal yang menarik dari Go programming language, yaitu adanya fitur cross compilation. Yaitu kita bisa membuat executable file yang dihasilkan untuk dijalankan pada platform (OS) yang berbeda.
Sebagai contoh kasus, kita melakukan pengembangan sebuah aplikasi di Linux. Setelah berhasil, maka bila kita ingin menjalankannya di Windows, maka yang perlu kita lakukan adalah sebagai berikut:
$ GOOS=windows go build hello.go
Maka output dari build ini adalah hello.exe dan bila kita cek, dengan perintah $ file hello.exe, maka akan muncul penjelasan sebagai berikut:
hello.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
Hal ini menunjukkan bahwa file hello.exe tersebut runnable di Windows. Bila kita coba jalankan di Linux, akan muncul error message berikut:
-bash: ./hello.exe: cannot execute binary file: Exec format error
Hal yang menarik lagi adalah bahwa untuk menjalankan file hello.exe tersebut, kita tidak perlu menginstal Go di Windows yang kita tuju. Tidak seperti Java yang mensyaratkan untuk menginstall Java Runtime Environment (JRE) pada Windows tujuan.
Inilah cara yang cerdik dari para pengembang bahasa Go tersebut. It's a cool thing.
Sebagai contoh kasus, kita melakukan pengembangan sebuah aplikasi di Linux. Setelah berhasil, maka bila kita ingin menjalankannya di Windows, maka yang perlu kita lakukan adalah sebagai berikut:
$ GOOS=windows go build hello.go
Maka output dari build ini adalah hello.exe dan bila kita cek, dengan perintah $ file hello.exe, maka akan muncul penjelasan sebagai berikut:
hello.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
Hal ini menunjukkan bahwa file hello.exe tersebut runnable di Windows. Bila kita coba jalankan di Linux, akan muncul error message berikut:
-bash: ./hello.exe: cannot execute binary file: Exec format error
Hal yang menarik lagi adalah bahwa untuk menjalankan file hello.exe tersebut, kita tidak perlu menginstal Go di Windows yang kita tuju. Tidak seperti Java yang mensyaratkan untuk menginstall Java Runtime Environment (JRE) pada Windows tujuan.
Inilah cara yang cerdik dari para pengembang bahasa Go tersebut. It's a cool thing.
Comments