菜单

admin
发布于 2024-05-23 / 91 阅读
0

golang交叉编译

1. 安装 gcc-mingw-w64

apt-get install gcc-mingw-w64
2. 跨平台编译

生成 64位 exe 可执行文件.
env CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -o main.exe main.go

生成 32 位 exe 可执行文件
env CGO_ENABLED=1 GOOS=windows GOARCH=386 CC=i686-w64-mingw32-gcc go build -o main.exe main.go

生成 64位 dll 可执行文件.
env CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -buildmode=c-shared -o main.exe main.go

生成 32 位 dll 可执行文件
env CGO_ENABLED=1 GOOS=windows GOARCH=386 CC=i686-w64-mingw32-gcc go build -buildmode=c-shared -o main.exe main.go

//macos m1 docker生成linux amd64
CGO_ENABLED=1 GOARCH=amd64  CC=x86_64-linux-gnu-gcc-10  GOOS=linux  go build  -a -ldflags "-s -w"  

// 降低编译体积过大
go build -ldflags="-w -s"

// 运行不显示命令行窗口
go  build  -ldflags= "-H windowsgui" 

// 编译可vmp加壳的程序
go build -ldflags '-v -linkmode=external "-extldflags=-Wl,-headerpad=0x500" -w -s'


//编译 ARM
GOARM=7 GOARCH=arm64 GOOS=linux go build -v