主思路
选择一个一体化,跨平台,容易打包的语言,目前来看只有go了。
选型思路
java要附带一批库,还要附带一个jre,不容易
php也是一批库和一个php runtime
nodejs更多库和一个node runtime
C有点难用,复杂一点的应用就花太多时间了,没有积累也不敢选
所以可选择的余地不多,太小众的语言也许还有,暂时就不研究了。
跨平台
go语言是编译型的,跨平台就可以用交叉编译。上手很快,与其他跨平台相比,打包不大,不需要额外的库或runtime安装,build后直接复制就可以运行了。编译后的文件不小,但相比java/php/nodejs 就算很小了。
交叉编译设定简单
GOOS=windows GOARCH=amd64 go build -o dist
原则上就是设定 GOOS, GOARCH就够了
可以查看支持的平台
go tool dist list
windows可以用
GOOS=windows GOARCH=amd64
mac可以用
GOOS=darwin GOARCH=amd64
linux可以用
GOOS=linux GOARCH=amd64
如果是特殊的32位就用 386,arm还没试过,理论上支持,但并没有试过。
参考
golang的官网 The Go Programming Language , The Go Programming Language
golang的官方包 pkg.go.dev
golang快速入门 Go 语言教程 | 菜鸟教程
交叉编译 Building Go Applications for Different Operating Systems and Architectures | DigitalOcean