好久之前在编译电信光猫上运行的插件上的时候,遇到了一个古怪的错误:

1
ERROR: CONFIG_SOFT_FLOAT is enabled but the external toolchain does not support it

整体的错误描述如下图:

然后,我使用make menuconfig的时候提示:

Mips架构表示没有 FPU(floating process unit,浮点数处理单元),需要软件层面去支持,所以打开了(SOFT_FLOAT=y),但同时编译工具表示它不支持 soft-float

然后我这边去尝试直接运行一下mips-linux-gcc(我这具体路径是/proj/mtk69527/econet-toolchain/buildroot-2015.08.1/output/host/usr/bin/mips-buildroot-linux-uclibc-gcc,是运行不起来的。

原因是缺少了32位的运行库。。

于是这个问题很清楚了,是由于我的环境是64位的,工具链是32位的,缺少32位运行库。

解决方法:

1
2
3
4
dpkg --add-architecture i386
apt-get update
apt-get install links:i386
apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

提示:编译光猫的插件还有一些依赖: apt-get install build-essential gettext

参考链接:

  1. https://blog.csdn.net/mtofum/article/details/50296085
  2. https://wiki.debian.org/Multiarch/HOWTO

当然,我这边已把编译电信光猫的环境打包成了Docker镜像,估计以后再也没有人遇到类似的情况,此文章只证明曾经遇到了这个问题~