Mac M1交叉編譯問題
最近剛從window轉到Mac系統(tǒng),用Mac交叉編譯window程序時遇到一點問題几缭。
配置項 \ 目標系統(tǒng) | Mac | Windows | - |
---|---|---|---|
CGO_ENABLED | 0 | 1 | 是否使用CGO拐揭,如果項目有用到c庫的話号杠,需要啟用嗜暴,看情況而定 |
GOOS | darwin | windows | 目標程序的運行系統(tǒng) |
GOARCH | arm64/amd64 | amd64 | 目標程序的運行環(huán)境的芯片架構,M1芯片用arm64 |
CC | gcc | x86_64-w64-mingw32-gcc | 指定編譯器 |
示例
Mac(編譯)系統(tǒng)
# 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(編譯)系統(tǒng)
# 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