openwrt golang mysql_golang1.9编译openwrt运行程序 ,window7下liteide编译

网上看了好多资料发现都很过时了,基本都是用的https://github.com/gomini/go-mips32编译的。

但是go1.9早就支持mips了,设置好编译参数,开始build,这时在go/pkg下会出现linux_mips目录,就是编译环境,其他的一样。

GOOS是你的应用程序将要运行平台的操作系统

GOARCH是你的应用程序将要运行平台的处理器架构。

有效的$GOOS和$GOARCH组合如下:

$GOOS $GOARCH

android arm

darwin386darwin amd64

darwin arm

darwin arm64

dragonfly amd64

freebsd386freebsd amd64

freebsd arm

linux386linux amd64

linux arm

linux arm64

linux ppc64

linux ppc64le

linux mips

linux mipsle

linux mips64

linux mips64le

netbsd386netbsd amd64

netbsd arm

openbsd386openbsd amd64

openbsd arm

plan9386plan9 amd64

solaris amd64

windows386windows amd64

1.首先通过putty连接到路由器,看看路由器cpu架构,我这里连接wr720n-v3,如下图

cat /proc/cpuinfo

f490d114c058743b553a03abb6387533.png

cpu model                                 :   MIPS 24Kc V7.4 说明是mips架构

还要看该cpu架构是big还是little,具体不知道怎么看,参考下面即可:

big:用mips,如ar71xx是big

little:用mipsle,如小米、极路由等MT76xx是little

2.go可以通过GOARCH和GOOS设置编译后程序的运行架构和系统,所以在编译时设置环境如下:

我是在window7下liteide编译,直接加个环境文件(liteide32.1\share\liteide\liteenv\linux32-mips.env):

GOARCH=mips

GOOS=linux

3.golang编写如下代码,直接build,不要run:

package main

import ("fmt"

"time")

func main() {for{

fmt.Println("1111")

time.Sleep(1 *time.Second)for{

time.Sleep(1 *time.Second)

fmt.Println("2222")break}

}

}

4.用WinSCP将程序文件“openwrtTest“放到openwrt系统里面,这里放置到/tmp下,设置文件权限:

chmod 777 -R /tmp/openwrtTest

5.运行文件,顺利搞定。这里如果已经进入tmp目录的话用./openwrtTest

/tmp/openwrtTest

e7f5e5b4375c01751dac16c0a6164bc9.png

6.运行时可能出现"Illegal instruction",那是因为openwrt内核中没有开启FPU

#1、可以设置

GOMIPS=softfloat

#2、或者开启FPU重新编译。

7.运行时可能出现"syntax error: unexpected "("",那是因为编译时mips或者mipsle不对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值