背景
openwrt是一个嵌入式的Linux发行版,主要用在路由器领域。目前常用的家用路由器的芯片方案,主要是mips架构的,也有arm方案的,某些性能需求高一点的地方还会用到x86架构的。
一、openwrt上面能否运行golang程序
openwrt上面可以运行golang程序,这是毫无疑问的(网上随便一搜就有一大堆)。为什么要在上面运行golang程序?主要是考虑到golang拥有比c更高的开发效率,更友好的开发体验,比其它脚本语言更低的运行开销,更简单的部署方法,以及更好的网络和标准库支持。
二、怎么样在openwrt上面运行golang程序
- 在编译openwrt源代码的时候,加入golang的支持。
openwrt-go是个不错的选择。这是一个github上的项目。
地址:《GeertJohan/openwrt-go》 - 使用交叉编译工具。例如 gomini/go-mips32。(针对mips64和arm的也可以在Google上找)
这也可以在github上面找到。
地址:《gomini/go-mips32》 - 直接使用别人已经构建好的docker镜像。(我个人在嵌入式构建方面,比较喜欢docker,因为厌烦了那种一次次的重新构建编译,厌倦了那些层出不穷的让人头疼的编译错误)
三、一些注意事项
- golang程序体积的问题。(嵌入式领域对这个问题其实挺在意的)
可以使用以下命令来编译
go build -ldflags "-s -w"
具体的请参考文章:[《让go 编译生成的文件体积小一些的方法》](https://www.golangnote.com/topic/66.html)
2. 上面所说的三种方法,我会分开三篇文章来叙述。(请在我的网站目录那里找一下)
http://xzh.i3geek.com
0 条评论