Mac M1交叉编译问题
最近刚从window转到Mac系统,用Mac交叉编译window程序时遇到一点问题。
配置项 \ 目标系统 | Mac | Windows | - |
---|---|---|---|
CGO_ENABLED | 0 | 1 | 是否使用CGO,如果项目有用到c库的话,需要启用,看情况而定 |
GOOS | darwin | windows | 目标程序的运行系统 |
GOARCH | arm64/amd64 | amd64 | 目标程序的运行环境的芯片架构,M1芯片用arm64 |
CC | gcc | x86_64-w64-mingw32-gcc | 指定编译器 |
示例
Mac(编译)系统
# M1程序
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build main.go
# Mac程序(非M1)
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
# window程序
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Window(编译)系统
# M1程序
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build main.go
# Mac程序(非M1)
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
# window程序
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go