安装Ceres(解决报错)

安装Ceres(解决报错)

具体的错误流程可以参考链接:link
这里只展示可以成功安装的流程.

1.安装依赖项:

sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

结果发现会报:
请添加图片描述
解决办法:linklink

2.更新 gcc,g++

利用下面代码查看编译器版本:

gcc -v
g++ -v

将编译器默认版本改为7即可,在终端输入下面代码:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update 
sudo apt-get install gcc-7
sudo apt-get install g++-7

配置:将gcc7,g++7作为默认选项:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --config gcc
 
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
sudo update-alternatives --config g++

3.下载最新版本进行安装

在这里插入图片描述
按照如下步骤进行安装:

cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
make 
sudo make install

安装成功.
在这里插入图片描述

当你在使用 CMake 调用 CerES 进行编译时遇到 glog 报错的情况,这可能是由于以下几个原因之一导致的: 1. **未正确链接库** 如果你在项目中启用了 glog 日志功能,并且需要依赖 Google 的 glog 库,则需要确保将 `glog` 正确地添加到项目的依赖项并链接它。如果缺失了该库的路径或链接选项,可能会导致类似“找不到符号”等错误。 2. **头文件配置不当** 确保你的 CMakeLists.txt 文件已包含必要的头文件目录 (`include_directories`) 和目标库 (如通过 `find_package(GLOG)` 或者手动指定) 。例如: ```cmake find_package(Ceres REQUIRED) include_directories(${CERES_INCLUDE_DIRS}) target_link_libraries(your_target ${CERES_LIBRARIES} glog::glog) ``` 3. **版本冲突** 某些情况下,CerES 使用了一个特定版本的 GLog ,而你安装的是另一个版本。这种版本不兼容可能导致一些奇怪的行为或者报错信息。建议检查系统上是否存在多个版本的 glog 安装,并尝试标准化环境下的版本管理工具(比如 vcpkg/conan). 4. **编译标志设置问题** 需要注意的是某些平台对调试和发布模式下编译有特殊需求(macOS/Linux vs Windows)。确认是否开启了正确的宏定义与预处理指令来适配当前系统的特性。 针对以上提到的问题点可以参考下面解决方案步骤逐步排查定位具体原因所在: ### 解决方案 #### 1. 核实CMake配置内容完整性 首先应该保证 CMake 中关于 ceres solver 及其所需辅助组件(gflags,glog...)均已正确定义清楚;同时也要关注各部分之间的相互作用关系。 ```bash # 示例命令用于验证安装好的包是否正常工作. cmake_minimum_required(VERSION 3.x) project(example) set(CMAKE_CXX_STANDARD 17) find_package(Ceres REQUIRED COMPONENTS Eigen SparseLinearAlgebraLibrary SuiteSparse) add_executable(main main.cpp) target_include_directories(main PRIVATE ${CERES_INCLUDE_DIRS}) if(TARGET glog::glog) message("Found glog!") endif() target_link_libraries(main ${CERES_LIBRARIES} glog::glog ...) ``` 注意替换 `${...}` 占位符为你实际环境中对应值. #### 2. 测试单一模块独立运行状况 创建最小化重现案例(minimal reproducible example),只保留涉及 ceres + glog 相关代码段落单独测试看能否成功生成结果再逐层叠加复杂度直至完整工程恢复为止。 #### 3. 更新相关软件至最新稳定版次 有时候旧版可能存在 bug 导致异常现象发生,所以考虑升级所有关联三方库包括但不限于 gcc/g++、python-pip等等都保持更新状态有助于减少潜在风险隐患.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值