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

安装Mike高精度数学库(MAPM)报错求助:无法找到-lm和-lc

解决MAPM库链接阶段-lm/-lc找不到的问题

解决办法

  • 安装系统基础库开发包:
    Debian/Ubuntu系列执行:
    sudo apt install libc6-dev libm-dev
    
    RHEL/CentOS系列执行:
    sudo yum install glibc-devel
    
  • 调整Makefile链接顺序:
    打开项目的Makefile,找到链接命令行,把-lm和-lc移到目标文件列表的后面。比如将:
    ld -lm -lc $(OBJ_FILES) -o $(TARGET)
    
    修改为:
    ld $(OBJ_FILES) -lm -lc -o $(TARGET)
    
    链接器是按顺序查找符号的,把库放在目标文件之后才能正确解析依赖。
  • 若为交叉编译场景:
    需确保交叉工具链完整包含C标准库和数学库,可通过指定库路径重新编译:
    make LDFLAGS="-L/your/cross-toolchain/lib"
    

-lm和-lc的作用

  • -lm:用于链接系统数学库(libm.so/libm.a),包含正弦、余弦、平方根等高级数学函数的实现。C语言标准中这类函数不属于默认链接的基础库,必须显式指定该参数才能调用。
  • -lc:用于链接C标准库(libc.so/libc.a),包含printf、malloc、字符串操作等所有基础C语言函数。通常使用gcc编译时会自动添加该参数,但直接调用ld链接时需要手动指定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:45:49