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の拡張機能も調べつつ、マイコンへのビルドを進めていきたいと思います。