各平台的GOOS和GOARCH参考
OS | ARCH | OS version | |
---|---|---|---|
Linux | 386 / amd64 / arm | >= Linux 2.6 | |
darwin | 386 / amd64 | OS X (Snow Leopard + Lion) | |
freebsd | 386 / amd64 | >= FreeBSD 7 | |
Windows | 386 / amd64 | >= Windows 2000 |
编译方法
例如linux的64位软件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o 存放位置 ./main.go
mac的64位就是
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o 存放位置 ./main.go
参考:xxd跨平台编译
#!/bin/sh
version=xxd.$1
echo "build version:"$version
echo "build darwin ..."
folder=$version.mac
if [ ! -d $folder ]; then
mkdir $folder
fi
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o $folder/xxd main.go
cp -ra config $folder
tar zcf $folder.tar.gz $folder
rm -rf $folder
folder=$version.linux-x64
if [ ! -d $folder ]; then
mkdir $folder
fi
echo "build linux x64 ..."
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $folder/xxd main.go
cp -ra config $folder
tar zcf $folder.tar.gz $folder
rm -rf $folder
folder=$version.linux-ia32
if [ ! -d $folder ]; then
mkdir $folder
fi
echo "build linux ia32 ..."
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -o $folder/xxd main.go
cp -ra config $folder
tar zcf $folder.tar.gz $folder
rm -rf $folder
folder=$version.win64
if [ ! -d $folder ]; then
mkdir $folder
fi
echo "build win64 ..."
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $folder/xxd.exe main.go
cp -ra config $folder
zip -rq $folder.zip $folder
rm -rf $folder
folder=$version.win32
if [ ! -d $folder ]; then
mkdir $folder
fi
echo "build win32 ..."
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -o $folder/xxd.exe main.go
cp -ra config $folder
zip -rq $folder.zip $folder
rm -rf $folder
folder=$version.linux_arm
if [ ! -d $folder ]; then
mkdir $folder
fi
echo "build linux arm ..."
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -o $folder/xxd main.go
cp -ra config $folder
tar zcf $folder.tar.gz $folder
rm -rf $folder
echo "build end "