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

64位Debian平台构建32位程序链接阶段报找不到-lcrypt错误

问题原因

gcc-multilib、g++-multilib 只提供64位Debian下编译32位程序的基础工具链和核心C/C++库依赖,不会默认附带32位版本的libcrypt链接库。
报错中的skipping incompatible是链接器搜索到了/usr/lib/x86_64-linux-gnu/路径下的64位libcrypt文件,架构不匹配无法用于32位链接,遍历完所有搜索路径找不到符合i386架构的libcrypt时,就会抛出cannot find -lcrypt错误。

解决步骤
  • 首先确认系统已经开启i386架构软件源支持,执行命令:
    sudo dpkg --add-architecture i386
    sudo apt update
    
  • 安装32位版本的libcrypt开发依赖:
    # Debian 11(Bullseye)及以上版本执行
    sudo apt install libcrypt1:i386 libcrypt-dev:i386
    
    如果是Debian 10(Buster)及更早版本,libcrypt还未从glibc源码包中拆分,直接执行:
    sudo apt install libc6-dev:i386
    
  • 验证库文件是否安装到位,执行:
    ls /usr/lib/i386-linux-gnu/libcrypt.*
    
    终端输出包含libcrypt.so软链和对应静态/动态库文件即为安装成功。
  • 重新执行原编译命令即可,编译时保持携带-m32参数,链接器会自动匹配i386架构的库搜索路径,不需要手动添加-L参数指定库位置。
注意事项

不要手动复制、软链x86_64路径下的libcrypt文件到i386库目录,不同架构的二进制文件无法混用,这类操作会触发更隐蔽的链接错误或运行时段错误。所有32位依赖都必须通过apt安装对应:i386后缀的官方包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:06:21