只需要指定目标操作系统的平台和处理器架构即可:
命令行方式
因为不支持CGO,所以要禁用CGO
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。
Mac 下编译 Linux 和 Windows 平台 64位 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux下编译 Mac 和 Windows 平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Windows下编译Mac平台64位可执行程序:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
make file 方式
# Binary name
BINARY=your_app_name
# Builds the project
build:
go build -o ${BINARY}
go test -v
# Installs our project: copies binaries
install:
go install
release:
# Clean
go clean
rm -rf *.gz
# Build for mac
go build
tar czvf ydict-mac64-${VERSION}.tar.gz ./ydict
# Build for linux
go clean
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
tar czvf your_app_name-linux64-${VERSION}.tar.gz ./ydict
# Build for win
go clean
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
tar czvf your_app_name-win64-${VERSION}.tar.gz ./ydict.exe
go clean
# Cleans our projects: deletes binaries
clean:
go clean
.PHONY: clean build
整个过程看起来非常简单,运行起来也非常简单,调用make release命令,并给VERSION变量赋值不同的版本号即可:
make release VERSION=0.9
命令会编译出不同平台可运行的压缩包:
ydict-mac64-0.9.tar.gz
ydict-linux64-0.9.tar.gz
ydict-win64-0.9.tar.gz
有疑问加站长微信联系(非本文作者)