mac m1 go交叉编译

Posted 烟雨半生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 .

  编译成功以此记录

以上是关于mac m1 go交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

Go交叉编译 Build(Mac/linux/Windows)

在 MacLinuxWindows 下Go交叉编译

Go语言MacLinuxWindows 下交叉编译

在 MacLinuxWindows 下Go交叉编译

mac下打patch后编译安装golang

go跨平台编译(交叉编译)