golang 理论上是可以针对各种不同的操作系统生成对应的程序的,即自带交叉编译功能。
在linux上,如果不是本机编译的可能出现 GLIBC 版本号对不上的情况。
此时需要指定 CGO_ENABLED=0 这个选项即可解决问题。
如下所示: kcptun的编译命令
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o client_windows_amd64.exe github.com/xtaci/kcptun/client
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build --ldflags="-s -w" -o client_linux_amd64 github.com/xtaci/kcptun/client
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build --ldflags="-s -w" -o server_linux_amd64 github.com/xtaci/kcptun/server
参考:
Heroku Go app crashes, version `GLIBC_2.32' not found, required by bin/main - Stack Overflow