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

Ceres Solver 2.0.0编译报错:无法定位librt.so目标文件

解决Ceres Solver编译时找不到librt.so的问题

问题分析

编译Ceres Solver 2.0.0时,make install报错找不到librt.so,程序错误地在conda临时构建路径/tmp/build/80754af9/snappy_1649923748780/_build_env/x86_64-conda-linux-gnu/sysroot/usr/lib/中查找该库,而实际库位于/usr/lib/x86_64-linux-gnu/。这是CMake缓存了旧的conda环境路径导致的。

解决方案

方案1:修正CMake参数并关闭Benchmark编译(推荐)

  1. 清理现有build目录的缓存文件:
cd /home/zhangzb/include/ceres-solver-2.0.0/build
rm -rf ./*
  1. 重新执行CMake命令,合并CMAKE_PREFIX_PATH路径(用分号分隔),添加系统库路径并关闭Benchmark编译:
cmake -DCMAKE_INSTALL_PREFIX=/home/zhangzb/include/Ceres/ \
-DCMAKE_PREFIX_PATH="/home/zhangzb/include/Glog;/home/zhangzb/include/eigen3;/home/zhangzb/include/Gflags" \
-Dglog_DIR=/home/zhangzb/include/Glog \
-DCMAKE_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu" \
-DBUILD_BENCHMARKS=OFF \
..
  1. 编译并安装:
make -j$(nproc)
make install

方案2:手动创建软链接(临时 workaround)

如果方案1无效,可以临时创建软链接让程序定位到正确库文件:

mkdir -p /tmp/build/80754af9/snappy_1649923748780/_build_env/x86_64-conda-linux-gnu/sysroot/usr/lib/
ln -s /usr/lib/x86_64-linux-gnu/librt.so /tmp/build/80754af9/snappy_1649923748780/_build_env/x86_64-conda-linux-gnu/sysroot/usr/lib/librt.so

之后再执行make install即可。注意该路径是临时的,服务器重启后可能需要重新创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:23:36