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

Ubuntu下使用erlang.mk编译Erlang代码报找不到-lexpat错误如何解决

编译报错解决指南

原始报错信息

Getting Xabber Web client .... done.
Copying Xabber Web files to 'priv' directory  ........ done.
make[1]: Entering directory '/home/isachi2004/xabber-websocket
/deps/fast_xml'
cc -o priv/lib/fxml.so c_src/fxml.o -lexpat -L -lei   -shared
/usr/bin/ld: cannot find -lexpat
collect2: error: ld returned 1 exit status
c_src/Makefile.erlang.mk:24: recipe for target 'priv/lib/fxml.so'
failed
make[2]: *** [priv/lib/fxml.so] Error 1
Makefile:25: recipe for target 'pre-app' failed
make[1]: *** [pre-app] Error 2
make[1]: Leaving directory '/home/isachi2004/xabber-websocket
/deps/fast_xml'
erlang.mk:4512: recipe for target 'deps' failed
make: *** [deps] Error 2

问题根因

报错核心为/usr/bin/ld: cannot find -lexpat,表示编译fast_xml依赖时,链接器无法找到系统中的expat XML解析库的开发版本,属于Ubuntu系统缺失对应系统依赖包导致的常见编译问题。

解决步骤

  • 第一步:安装缺失的expat开发依赖包
    执行命令:
    sudo apt update && sudo apt install -y libexpat1-dev
    
  • 第二步:安装基础编译工具与Erlang开发依赖(避免后续出现其他链接类报错)
    执行命令:
    sudo apt install -y build-essential erlang-dev
    
  • 第三步:清理之前的编译残留文件,重新执行编译
    执行命令:
    make clean && make
    

可选排查验证

如果执行完上述步骤仍然报错,可以执行以下命令确认expat库已经正确安装到系统路径:

ldconfig -p | grep libexpat

正常执行会输出至少一行包含libexpat.so的路径信息,说明库已经正确安装。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:06:03