You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu 20.04 x86_64系统运行32位二进制文件报错求助

在x86_64 Ubuntu 20.04运行32位二进制文件报错的解决方法

问题背景

尝试在x86_64架构的Ubuntu 20.04系统中运行一款旧的32位二进制文件,相关信息如下:

文件信息(file命令输出)

$ file /usr/local/diamond/3.13/modeltech/linuxloem/vsim
/usr/local/diamond/3.13/modeltech/linuxloem/vsim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b8557f9eb74b21146d0eba49769f30f475422d26, stripped

执行报错

$ /usr/local/diamond/3.13/modeltech/linuxloem/vsim
bash: /usr/local/diamond/3.13/modeltech/linuxloem/vsim: No such file or directory

文件权限

$ ls -la /usr/local/diamond/3.13/modeltech/linuxloem/vsim
-rwxr-xr-x 1 mwg mwg 7772676 Jul 18  2023 /usr/local/diamond/3.13/modeltech/linuxloem/vsim

使用sudo执行同样报错,推测缺少32位程序所需的动态链接器/lib/ld-linux.so.2,安装binutils未解决问题。

解决步骤

1. 安装32位运行时兼容库

Ubuntu 20.04默认不预装32位程序支持,需要先添加i386架构并安装核心32位库:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386

该操作会自动安装/lib/ld-linux.so.2动态链接器,以及32位程序运行必需的C标准库、终端库和C++标准库。

2. 验证动态链接器状态

安装完成后,检查链接器是否存在:

ls -l /lib/ld-linux.so.2

若输出类似lrwxrwxrwx 1 root root 10 日期 /lib/ld-linux.so.2 -> ld-2.31.so,说明链接器已就绪。

3. 排查缺失的依赖项

如果仍无法运行,用ldd命令检查程序的所有依赖是否齐全:

ldd /usr/local/diamond/3.13/modeltech/linuxloem/vsim

输出中标记为not found的条目即为缺失的依赖,安装对应的32位包(格式为包名:i386)即可。

4. 手动指定动态链接器运行(可选)

若上述方法无效,可尝试直接调用动态链接器启动程序:

/lib/ld-linux.so.2 /usr/local/diamond/3.13/modeltech/linuxloem/vsim

内容的提问来源于stack exchange,提问作者fsctl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:22:20