背景

openwrt是一个嵌入式的Linux发行版,主要用在路由器领域。目前常用的家用路由器的芯片方案,主要是mips架构的,也有arm方案的,某些性能需求高一点的地方还会用到x86架构的。

一、openwrt上面能否运行golang程序

openwrt上面可以运行golang程序,这是毫无疑问的(网上随便一搜就有一大堆)。为什么要在上面运行golang程序?主要是考虑到golang拥有比c更高的开发效率,更友好的开发体验,比其它脚本语言更低的运行开销,更简单的部署方法,以及更好的网络和标准库支持。

二、怎么样在openwrt上面运行golang程序

  1. 在编译openwrt源代码的时候,加入golang的支持。
    openwrt-go是个不错的选择。这是一个github上的项目。
    地址:《GeertJohan/openwrt-go》
  2. 使用交叉编译工具。例如 gomini/go-mips32。(针对mips64和arm的也可以在Google上找)
    这也可以在github上面找到。
    地址:《gomini/go-mips32》
  3. 直接使用别人已经构建好的docker镜像。(我个人在嵌入式构建方面,比较喜欢docker,因为厌烦了那种一次次的重新构建编译,厌倦了那些层出不穷的让人头疼的编译错误)

三、一些注意事项

  1. golang程序体积的问题。(嵌入式领域对这个问题其实挺在意的)
    可以使用以下命令来编译
go build -ldflags "-s -w"

具体的请参考文章:[《让go 编译生成的文件体积小一些的方法》](https://www.golangnote.com/topic/66.html)
2. 上面所说的三种方法,我会分开三篇文章来叙述。(请在我的网站目录那里找一下)





http://xzh.i3geek.com

爱唠叨的老鱼

爱唠叨的老鱼

技术经理,个人站长,创业者

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据