Ubuntu18.04安装Ceres1.14.0

本文档指导您在Linux系统上安装Ceres Solver,包括从GitHub下载源代码,安装必要的依赖,解压并编译,以及确认安装成功的步骤。整个过程大约需要20分钟,最终会在/usr/local/include/ceres/目录下找到头文件,并在/usr/local/lib/目录下找到库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:首先下载Ceres的源代码,链接如下:

https://codeload.github.com/ceres-solver/ceres-solver/tar.gz/refs/tags/1.14.0

说明:tar.gz 是Linux系统下的压缩包 zip是Windows系统下的压缩包

第二步:安装ceres所需要的依赖

sudo apt install libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

第三步:在Linux系统下解压压缩包,然后进入文件夹编译安装ceres,这里耗时比较久大概20min左右。一步步依次执行下面的命令。

cd ceres-solver/

mkdir build

cd build

cmake ..

make

sudo make install

安装完成后,如果在/usr/local/include/ceres/目录下能找到Ceres的头文件,并且也有库文件/usr/local/lib/libceres.a,说明安装成功了,

### 解决方案 当遇到 `CMake` 报告找到了 `CeresConfig.cmake` 文件但是 `Ceres_FOUND` 被设置为 `FALSE` 的情况时,这通常意味着虽然找到了配置文件,但某些必要的条件未满足。以下是可能的原因及解决方案: #### 1. 版本兼容性问题 如果使用的 `Ceres Solver` 和项目中的其他依赖项版本不匹配,则可能导致此错误。确保所有组件都处于兼容状态非常重要[^1]。 ```bash ceres_version=$(cat /path/to/ceres/CMakeLists.txt | grep PROJECT_VERSION | awk '{print $2}') echo "Detected Ceres version: ${ceres_version}" ``` #### 2. 安装路径问题 确认 `Ceres` 是否被正确安装到系统的标准库目录下,并且这些位置已经被加入到了环境变量中。对于非默认位置的自定义安装,需通过 `-DCERES_DIR=/your/install/path/lib/cmake/Ceres` 参数显式指定给 `cmake` 命令[^2]。 ```bash export CERES_ROOT="/custom/installation/folder" export PKG_CONFIG_PATH="${CERES_ROOT}/lib/pkgconfig:$PKG_CONFIG_PATH" export LD_LIBRARY_PATH="${CERES_ROOT}/lib:${LD_LIBRARY_PATH}" ``` #### 3. 缺少依赖关系 有时即使主要包存在,缺少次要依赖也会阻止成功查找。检查并安装任何缺失的支持库或工具链部分。特别是像 `glog`, `gflags`, 或者线性代数库如 `Eigen` 这样的外部依赖项是否齐全[^3]。 ```python try: import google.glog as glog except ImportError: print("Google Logging Library is missing.") import numpy as np if not hasattr(np, 'einsum'): raise RuntimeError('Numpy needs updating.') ``` #### 4. 配置脚本缺陷 最后一种可能是由于 `FindCeres.cmake` 或者 `CeresConfig.cmake` 中存在的逻辑漏洞引起的误判。可以尝试更新至最新版官方发布的源码来修复潜在的问题,或者手动编辑本地副本以绕过特定检测规则。 ```diff --- FindCeres.cmake.orig 2023-07-09 12:00:00.000000000 +0800 +++ FindCeres.cmake 2023-07-09 12:05:00.000000000 +0800 @@ -10,6 +10,7 @@ set(CERES_INCLUDE_DIRS "${CERES_HOME}/include") set(CERES_LIBRARIES ceres) +# Force setting FOUND flag even when some checks fail. set(CERES_FOUND TRUE PARENT_SCOPE) return() endif() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值