mipsel-linux-gcc 安装,opt/buildroot-gcc342/bin/mipsel-linux-gcc解决办法
1.Command not found错误的确认
用mipsel-Linux-uclibc-gcc编译Uboot 时,出现Command not found错误,但是我检查了编译工具的路径等是正确的,
之后在编译工具目录直接运行mipsel-linux-uclibc-gcc -v,也会出现Command not found,所以确定该问题跟编译工
具本身或系统环境有关。
通过网上一番搜索后发现是64位系统中缺少32位库文件导致的,通过下面3条命令可以确认:
(1)通过uname -m 可查看主机Ubuntu系统是64位的
x86_64
(2)mipsel-linux-uclibc-gcc是32位可执行文件
mipsel-linux-uclibc-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs),
(3)ldd mipsel-linux-uclibc-gcc
是dynamic executable,但ldd显示not a dynamic executable
2.解决办法
$ readelf mipsel-linux-uclibc-gcc -l | grep ld-linux
[Requesting program interpreter: /lib/ld-linux.so.2]
找了一下,没有返回
$ locate ld-linux.so.2
再找:
$ locate ld-linux
/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
/lib64/ld-linux-x86-64.so.2
/usr/share/man/man8/ld-linux.8.gz
/usr/share/man/man8/ld-linux.so.8.gz
所以知道缺少32位版本libstdc++6:i386,于是
$ sudo apt-get install libstdc++6:i386
再次找ld-linux:
$ sudo updatedb
$ locate ld-linux.so.2
/lib/ld-linux.so.2
/lib/i386-linux-gnu/ld-linux.so.2
再次对它ldd:
$ ldd mipsel-linux-uclibc-gcc
linux-gate.so.1 => (0xf7719000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7552000)
/lib/ld-linux.so.2 (0xf771a000)
返回的就是它需要的动态链接库了, 如果其中有not found的项, 还需要安装相应库,假如:
libSM.so.6 => not found
使用命令安装:
$ sudo apt-get install libSM6:i386
可以发现, 安装的包的名字由缺少的库的 名字+版本+:+类型 决定的, 如 libfreetype.so.6 对应的包就是 libfreetype6:i386
就是这样把所有not found的库都装上, 这样这个二进制程序应该就可以使用了.
$./mipsel-linux-uclibc-gcc -v:
....gcc version 3.4.2
实际遇到问题:
sudo apt-get install libstdc++6:i386
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-11-23 arm-hisiv200-linux- 添加驱动
2021-11-23 Hi3516A
2021-11-23 yaffs
2020-11-23 C++ 使用OPENSSL AES DES 加密和JAVA 对接注意事项
2020-11-23 des加密模式
2020-11-23 Not-Yet-Commons-SSL
2020-11-23 java c++ des