# mac os golang编译ARM环境go-sqlite3项目

## 安装交叉编译C/C++依赖

```
# 编译win环境需要
brew install mingw-w64
# 编译linux/arm 环境需要  --with-i486（x86 32-bit），--with-aarch64（ARM 64-bit），--with-arm（ARM soft-float），--with-arm-hf （ARM hard-float 需要armv7后支持）
brew install FiloSottile/musl-cross/musl-cross --with-i486 --without-x86_64 --with-arm-hf --with-arm --with-aarch64
```

最后输出

```
==> /usr/local/opt/make/bin/gmake install TARGET=aarch64-linux-musl
==> /usr/local/opt/make/bin/gmake install TARGET=arm-linux-musleabihf
==> /usr/local/opt/make/bin/gmake install TARGET=arm-linux-musleabi
==> /usr/local/opt/make/bin/gmake install TARGET=i486-linux-musl
🍺  /usr/local/Cellar/musl-cross/0.9.9: 7,081 files, 799.0MB, built in 94 minutes 22 seconds
```

## 编译golang 带 go-sqlite3的项目

```
CGO_ENABLED=1 GOARCH=arm  GOOS=linux   CC=arm-linux-musleabihf-gcc CGO_LDFLAGS="-static" go build -a -v -installsuffix cgo -o bin/bfs-data-detection .
```

参考：<https://saekiraku.github.io/article/18577/>
