Golang交叉编译报错:go.o: compiled for a big endian system and target is little endian

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支持的所有操作系统和平台架构。

猜你喜欢

转载自blog.csdn.net/Three_dog/article/details/94039378