Scene
-
You are working on a Mac. In this case 13.0.1 Ventura
-
You have a golang app that uses sqlite3 database
-
You want to cross-compile your app for the ARM architecture. In this case for ubuntu VM via multipass
Prerequisites
-
brew (Homebrew 3.6.14)
-
golang (go version go1.19.4 darwin/arm64)
Steps
- Install musl-cross
brew install FiloSottile/musl-cross/musl-cross --without-x86_64 --with-aarch64
- Compile your app
CC=aarch64-linux-musl-gcc CXX=aarch64-linux-musl-g++ GOARCH=arm64 GOOS=linux CGO_ENABLED=1 go build -ldflags "-linkmode external -extldflags -static" -o lserver --tags "fts5" .