golang 在 mipsle 平台的问题

2020-06-23 21:13:24 +08:00
 sadfQED2

本猿互联网后端仔一只,想写点程序放路由器上面运行。经过查询,golang 支持 mipsle,我手持 newifi3 一台,但是我用 win10 go1.14 无论怎么编译,放到路由器上面运行,始终输出 bus error 。 这玩意究竟啥意思,好像根本搜不到这方面的资料,各位老哥谁懂行的?给指点一下?

golang 代码只有一行,如下

package main

import (
	"fmt"
)

func main() {
	fmt.Println("hello world!")
}


编译命令:

set GOOS=linux

set GOARCH=mipsle

go build main.go

路由器 uname

Linux OpenWrt 4.14.172 #0 SMP Mon Apr 6 15:29:11 2020 mips GNU/Linux
2148 次点击
所在节点    问与答
11 条回复
polaa
2020-06-23 23:44:59 +08:00
因为路由器上的系统是阉割版 linux 大概的可能的不满足依赖? 不是很确定

一般编译嵌入式设备是是使用 buildroot 或者 crosstool-ng 等嵌入式平台的交叉编译工具链
ysc3839
2020-06-24 00:07:33 +08:00
尝试用 OpenWrt 的 SDK 编译?
Reficul
2020-06-24 00:15:15 +08:00
mipsle 有好几个细分的 Target , 比如 mips mips64 mips64le mipsle
sadfQED2
2020-06-24 07:58:12 +08:00
@Reficul 我每个都尝试了,都不管用
sadfQED2
2020-06-24 07:59:03 +08:00
@polaa 好的,我去查查,多谢
sadfQED2
2020-06-24 07:59:29 +08:00
@ysc3839 多谢, 我去查查咋用
goofool
2020-06-24 09:49:32 +08:00
1 、路由器空间够么
2 、ldd main 看看
sadfQED2
2020-06-24 14:15:40 +08:00
@goofool ldd: main: Not a valid dynamic program
sadfQED2
2020-06-24 14:46:27 +08:00
@polaa
@ysc3839

https://github.com/kuoruan/openwrt-frp/blob/master/Makefile

https://github.com/kuoruan/openwrt-v2ray/blob/master/Makefile

请问老哥说的是这种吗,我看了别人项目的编译,为啥是一个 Makefile 呀,我理解的 go 语言编译不应该是 go build 一下就行了么,Makefile 不应该是 c 语言里面的么,这样的话我那个 hello word 要咋写 Makefile 呢,能给个关键词么,搜了半天都没搜到相关资料
ysc3839
2020-06-24 16:20:42 +08:00
@sadfQED2 因为这是配合 OpenWrt 的 build system 用的,而这套 build system 是基于 make 的,所以要求写 Makefile 。
cosmain
2023-06-13 16:26:58 +08:00
这个 CPU 没有 FPU ,要软浮点。
GOMIPS=softfloat

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/684263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX