mac m1 go交叉编译
记录一次在mac 上go+sqllite3编译到centos使用
网上搜到安装
brew install FiloSottile/musl-cross/musl-cross
但是很遗憾,报错
==> /opt/homebrew/opt/make/bin/gmake install TARGET=x86_64-linux-musl Last 15 lines from /Users/baicai/Library/Logs/Homebrew/musl-cross/01.gmake: "_host_hooks", referenced from: gt_pch_save(__sFILE*) in libbackend.a(ggc-common.o) gt_pch_restore(__sFILE*) in libbackend.a(ggc-common.o) toplev::main(int, char**) in libbackend.a(toplev.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) gmake[3]: *** [../../src_gcc/gcc/lto/Make-lang.in:81: lto1] Error 1 gmake[3]: *** Waiting for unfinished jobs.... rm gcc.pod gmake[3]: Leaving directory '/private/tmp/musl-cross-20210625-6200-1rc908m/musl-cross-make-0.9.9/build/local/x86_64-linux-musl/obj_gcc/gcc' gmake[2]: *** [Makefile:4361: all-gcc] Error 2 gmake[2]: Leaving directory '/private/tmp/musl-cross-20210625-6200-1rc908m/musl-cross-make-0.9.9/build/local/x86_64-linux-musl/obj_gcc' gmake[1]: *** [Makefile:222: obj_gcc/gcc/.lc_built] Error 2 gmake[1]: Leaving directory '/private/tmp/musl-cross-20210625-6200-1rc908m/musl-cross-make-0.9.9/build/local/x86_64-linux-musl' gmake: *** [Makefile:183: install] Error 2
后台通过安装
https://github.com/messense/homebrew-macos-cross-toolchains brew tap messense/macos-cross-toolchains brew install x86_64-unknown-linux-gnu brew install aarch64-unknown-linux-gnu
编译
CGO_ENABLED=1 GOOS=linux CC=x86_64-unknown-linux-gnu-gcc CXX=x86_64-unknown-linux-gnu-g++ go build -a -installsuffix cgo -o app .
编译成功以此记录