Golang在X86下交叉编译龙芯平台程序报错
go.o: compiled for a big endian system and target is little endian
编译命令:
CGO_ENABLED=1 GOOS=linux GOARCH=mips64 CC=/opt/tool/mips64el-unknown-linux-gnu-gcc go build -o bin/xxx xxx
报错原因:
编译器是给大端字节序的平台用的,而目标平台是个小端字节序。
项目中用到cgo,所以CGO_ENABLE=1,必须要指定CC交叉编译器gcc
此处的gcc使用的是mips64el(小端字节序),而编译指定的GOARCH=mips64(大端字节序)
解决方案:
将GOARCH指定为小端字节序目标的平台:
GOARCH=mips64le
注意是le不是el。 可以通过
go tool dist list命令查看Golang支持的所有操作系统和平台架构。

本文解决Golang在X86下交叉编译龙芯平台程序时遇到的字节序不匹配错误。详细分析了编译命令及参数设置问题,指出因目标平台字节序与指定架构不符导致的错误,并提供了解决方案。
1883

被折叠的 条评论
为什么被折叠?



