Go

TinyGoの開発環境について

TinyGoの開発環境について

tinygo開発環境の構築

落ち着いて一から再構築

Pi2bにdebianをインストールして、apt,dpkgでgoとtinygoをインストールしましたが、何かうまくいきません。よくわかってないのが大きいですが。

それぞれ逐次バージョンアップされるので個人ユーザーならユーザー領域にインストールすると事後の管理が簡単なようです。

構築環境

tinygo開発環境は、Pi2bに構築中します。

現在の設定など

  • Pi2bにdebian bullseysの32bitをインストール
  • golangをaptでインストール。tinygoをdpkgでインストール →/usr/localへインストールされます。

今後のことを考えると

  • golangのtgzで取ってきて、/usr/local/go以下へインストールしてPATH追加
  • tinygoもtgz持ってきて/home/pi/tinygo以下へインストールしてPATH追加
  • 環境変数GOLANG, TINGOLIBSをインストール先に合わせて.bashrcへ書く

これで環境はうまくいきそうな感じです。aptでインストールしたのを消去しつつ、再構築してみます。

再設定状況

インストールしたバージョンは、以下のとおり。組合せの良しあしあるようです。

1
2
-rw-r--r--  1 pi pi 116690970 Sep  7 01:18 go1.19.1.linux-armv6l.tar.gz
-rw-r--r--  1 pi pi 108289851 Sep 20 20:12 tinygo0.25.0.linux-arm.tar.gz

/home/pi以下に「go」「tinygo」のフォルダーを作成して展開。それぞれのbinにパスを通す。

1
2
3
4
pi@pi2b:~/work/test $ go version
go version go1.19.1 linux/arm
pi@pi2b:~/work/test $ tinygo version
tinygo version 0.25.0 linux/arm (using go version go1.19.1 and LLVM version 14.0.0)

それぞれコンパイラーは動く感じです。 お試しなソースhello.goをビルドしてみます。

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
	fmt.Println("Hello world!")
}

それぞれでバイナリーを作成、動作も確認できました。tinygoは、確かにバイナリの大きさが1/10程度になりました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
pi@pi2b:~/work/test $ ls
hello.go
pi@pi2b:~/work/test $ go build -o test ./hello.go 
pi@pi2b:~/work/test $ tinygo build -o test_tiny ./hello.go 
pi@pi2b:~/work/test $ ls -l 
total 1996
-rw-r--r-- 1 pi pi      78 Sep 20 21:23 hello.go
-rwxr-xr-x 1 pi pi 1864955 Sep 20 21:33 test
-rwxr-xr-x 1 pi pi  167172 Sep 20 21:34 test_tiny
pi@pi2b:~/work/test $ ./test
Hello world!
pi@pi2b:~/work/test $ ./test_tiny 
Hello world!
pi@pi2b:~/work/test $

今日のまとめ

Pi2b+debianにTinyGoの開発環境を構築します。 再度一から開発環境を整えました。簡単なサンプルをコンパイルできることを隠しました。 VScodeの拡張機能も調べつつ、マイコンへのビルドを進めていきたいと思います。

comments powered by Disqus