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

Debian12服务器运行同架构编译二进制文件提示‘not found’原因咨询

问题:同架构Debian 12服务器上执行编译好的二进制文件提示“not found”,该错误指什么?

我在Debian 12 x64服务器上运行一个在另一台同架构(Debian 12 x64)机器上编译的二进制文件,执行时返回“not found”错误,操作及输出如下:

/usr/src/app/bin # ls -la
total 25412
drwxr-xr-x    1 root     root          4096 Jul 24 10:28 .
drwxr-xr-x    1 root     root          4096 Jul 24 10:29 ..
-rwxr-xr-x    1 root     root      26003232 Jul 24 10:27 extrude_skeleton
/usr/src/app/bin # chmod +x extrude_skeleton 
/usr/src/app/bin # ./extrude_skeleton 
/bin/sh: ./extrude_skeleton: not found
/usr/src/app/bin # 

请问此“not found”指的是什么?


这个“not found”不是指二进制文件本身找不到(从ls输出能确认文件存在且有执行权限),而是指该二进制文件依赖的动态链接器(程序加载器)或核心系统库找不到。

常见触发原因:

  • 二进制为动态编译,依赖的某个核心系统库(如特定版本的glibc)在目标服务器上缺失,即便都是Debian 12,也可能因系统安装方式(比如最小化安装)导致组件差异。
  • 编译时指定了非标准路径的动态链接器,目标服务器不存在该路径的链接器(例如使用自定义编译的glibc,链接器路径与系统默认不同)。

可以用以下命令排查具体问题:

  1. 查看二进制指定的动态链接器路径:
readelf -l extrude_skeleton | grep interpreter

输出会显示类似/lib64/ld-linux-x86-64.so.2的路径,检查目标服务器上该路径是否存在。

  1. 检查所有依赖库的状态:
ldd extrude_skeleton

如果有库标注not found,那就是缺失的依赖库导致了这个错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:16:06