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

64位Ubuntu 17.10执行make all失败,报/usr/bin/ld: cannot find -lgcc_s错误求助

解决Ubuntu 17.10 64位下make时找不到-lgcc_s的问题

嘿,我来帮你搞定这个链接错误!你遇到的/usr/bin/ld: cannot find -lgcc_s问题,在64位Ubuntu系统上通常是因为缺少32位版本的gcc支持库,或者链接器没定位到正确的库路径。下面是几个按优先级排序的解决方案,你可以依次尝试:

  • 安装32位gcc多架构支持库
    这是最常见的解决方式,因为64位系统默认只安装64位库,如果你编译的是32位程序,就会找不到对应的32位libgcc_s。执行以下命令安装:

    sudo apt-get update && sudo apt-get install gcc-multilib lib32gcc1
    

    这个包会自动安装32位版本的gcc相关库,包括你需要的libgcc_s.so。

  • 手动指定链接器的库路径
    如果安装完多架构库后还是报错,可能链接器没有自动搜索到32位库路径。你可以在make命令中手动添加路径参数:

    make all LDFLAGS="-L/usr/lib32"
    

    或者直接修改项目的Makefile,找到LDFLAGS变量,追加-L/usr/lib32,这样后续make时就会自动包含这个路径。

  • 创建软链接修复库文件名匹配问题
    有些情况下,系统中存在libgcc_s.so.1(实际的库文件),但链接器在找的是libgcc_s.so(无版本号的链接文件)。你可以手动创建软链接:

    sudo ln -s /usr/lib32/libgcc_s.so.1 /usr/lib32/libgcc_s.so
    

    执行完后再重新运行make all试试。

  • 检查并更新gcc版本
    Ubuntu 17.10是比较老的版本,可能gcc存在兼容性问题。执行以下命令确保gcc是系统支持的最新版本:

    sudo apt-get update && sudo apt-get install --reinstall gcc
    

    重新安装gcc可以修复可能损坏的库文件或配置。

简单解释下:libgcc_s是gcc提供的支持库,负责处理异常、线程安全等底层功能,64位系统默认不预装32位版本,所以编译32位目标程序时就会触发这个错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:02:42