min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

fedora30 Go言語をインストールして、Linuxから「Windowsで動くexe」を作ってみる

Go言語の動画を見た。

www.youtube.com

2018年の動画で少し古いけど面白い。Go使ってみたい。

 

以前インストールはしたものの使う機会なかった。

min117.hatenablog.com

 

が、動画によるとどうもGoはWeb APIを使うのに便利らしい

buildersbox.corp-sansan.com

PHPPythonばっか使ってきたけど、Goで書くと速いみたいだしWebアセンブリも使ってみたいので始めることにする。

 

fedora30 にインストールする。

f:id:min117:20191201185729p:plain

developer.fedoraproject.org

 

$ sudo dnf install golang

f:id:min117:20191201185613p:plain

f:id:min117:20191201185836p:plain

完了。

 

PATHも書いておく。 

$ vim ~/.bashrc

f:id:min117:20191201220347p:plain

準備OK。

 

 

 

 

 

さて、インストールされたGoで何をするかというと。動くものを作るプレイグラウンドがどうだの変数がどうだのダルいことはしない。

github.com

とにかく動かす。

 

Goの凄いところとしてクラスプラットフォームな点があり

f:id:min117:20191201220839p:plain

f:id:min117:20191201222820p:plain

 

つまりはLinuxで作ったプログラム(バイナリ)Windowsで動く。言い換えるとLinuxからWindowsで作るexeを作ることができる」。これすごい。

 

やってみる。

$ mkdir wasm_calc

$ cd wasm_calc

$ vim main.go

f:id:min117:20191201221835p:plain

 

Windowsバイナリ(main.exe) を作る。

$ GOOS=windows GOARCH=386 go build -o main.exe main.go

f:id:min117:20191201220525p:plain

ちなみに「Goは出力を先に書く」というのが習慣らしい。

 

Windowsから動かしてみる。

cmd> pushd ¥¥server¥wasm_calc¥

cmd> main.exe

f:id:min117:20191201221652p:plain

素晴らしい。面白い。

例えばペインタで画像を開く(mspaint.exe hoge.jpg)みたいな簡単な処理ならすぐ書けそう。日々の業務で使うツールとかも作れたりして。いろいろ試してみる。

 

追加)

RaspberryPi3 で動くバイナリも作ってみた。

 

fedora30 にて作成

$ GOOS=linux GOARCH=arm go build -o main_pi main.go

f:id:min117:20191201223134p:plain


RaspberryPi3 にて実行

f:id:min117:20191201223330p:plain

最高。

 

 

参考) 

f:id:min117:20191201221043p:plain

qiita.com