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

Ubuntu 24.04构建zedless时rust-lld找不到已安装依赖库

问题原因
  1. 依赖安装不全:你之前的apt命令只安装了libxkbcommon-dev和libasound2-dev,漏了libxkbcommon-x11-dev包,libxkbcommon-x11的库文件由这个独立包提供,系统里根本没有这个库的任何版本(不管动态还是静态)。
  2. 链接模式不匹配:你的构建配置开启了-static-pie静态PIE编译,链接参数中-Wl,-Bstatic(静态链接标记)的生效范围覆盖了-lxkbcommon、-lxkbcommon-x11、-lasound三个库,此时rust-lld只会查找.a后缀的静态库文件,不会识别系统中已安装的.so格式动态库;如果对应开发包没有提供静态库版本,就会触发找不到库的报错。
修复步骤
  • 第一步:安装全量构建依赖,不要只装零散的两个包,Ubuntu环境下编译zed/zedless需要的系统依赖如下:
apt update && apt install -y \
  build-essential clang cmake curl git pkg-config \
  libasound2-dev libfontconfig1-dev libfreetype6-dev libssl-dev \
  libxcb-shape0-dev libxcb-xfixes0-dev libxcb-render0-dev libxcb-present-dev libxcb-xinput-dev libdrm-dev \
  libxkbcommon-dev libxkbcommon-x11-dev
  • 第二步:根据你的构建需求选择对应配置:
    • 如果只是本地编译测试,不需要输出可移植的单文件静态程序:直接关闭静态链接选项即可。可以在编译时临时关闭静态相关的feature,或者修改项目内.cargo/config.toml中的rustflags配置,删除-static-pie、-Wl,-Bstatic相关的静态链接参数,再执行编译。
    • 如果需要输出静态PIE版本的可移植程序:执行ls /usr/lib/x86_64-linux-gnu/ | grep -E "(libxkbcommon|libasound).*\.a"检查三个报错库的.a静态文件是否存在,哪个缺失就安装对应提供该静态文件的开发包即可。
  • 第三步:清理旧的构建缓存后重新编译,避免缓存的旧链接参数导致问题:
cargo clean
cargo build --release

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:30:53