添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1.ceres的依赖项tbb库中tbb_stddef.h文件包含了tbb库的版本信息,但已从tbb 2021.1版中删除。

CMake Error at cmake/FindTBB.cmake:224 (file):
file failed to open for reading (No such file or directory):

/usr/include/tbb/tbb_stddef.h

Call Stack (most recent call first):
cmake/FindSuiteSparse.cmake:288 (find_package)
CMakeLists.txt:281 (find_package)

相同目录下的version.h有相似内容,在FindTBB.cmake文件224行将tbb_stddef.h替换为version.h,顺利通过编译。

2.make过程中遇到的报错:

/home/jadrian/fslambook2/3rdparty/ceres-solver/internal/ceres/gtest/gtest.h:10445:35: error: variable or field ‘it’ declared void
10445 |   for (typename C::const_iterator it = container.begin();
|                                   ^~
make[2]: *** [internal/ceres/CMakeFiles/residual_block_test.dir/build.make:76:internal/ceres/CMakeFiles/residual_block_test.dir/residual_block_test.cc.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:2519:internal/ceres/CMakeFiles/residual_block_test.dir/all] 错误 2

这是Eigen版本的问题,需要安装Eigen3.2.5版本,但是我其他库依赖3.4版本的Eigen所以不打算卸载,而是重新在/urs目录下安装3.2.5版本的Eigen:

Releases · libeigen / eigen · GitLab

在下载好的Eigen3.2.5源码解压目录下输入命令:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/include/eigen3.2.5 ..
sudo make install

遂将Eigen3.2.5安装成功。在ceres-solver/cmake下将FindEigen.cmake文件替换为以下内容:

(其中的“/usr/eigen3/include/eigen3”替换为Eigen3.2.5安装路径)

之后顺利编译安装库

相同目录下的version.h有相似内容,在FindTBB.cmake文件224行将tbb_stddef.h替换为version.h,顺利通过编译。ceres的依赖项tbb库中tbb_stddef.h文件包含了tbb库的版本信息,但已从tbb 2021.1版中删除。 这里参考官网的说明文档:链接 第一次失败 下载的高翔的SLAM十四讲源码,直接解压3rdparty/ ce res- solver .tar.gz,然后进入文件夹mkdir一个build文件夹,内部cmake,就出错了 查阅了一些资料发现,高翔的SLAM源码里的 ce res的版本有点陈旧,应该在官网下载最新的稳定版本,并且依赖项也需要更换成匹配的版本, ce res官网链接写的很清楚(TIPS:链接在上方,不熟
文章目录一、问题描述二、解决方法 一、问题描述 使用 ce res 编译 报错 error: ‘integer_sequen ce ’ is not a member of ‘std’ 二、解决方法 出现这个问题的原因应该是使用了 c++ 14 标准。 将Cmake中的 set(CMAKE_CXX_FLAGS "-std= c++ 11") set(CMAKE_CXX_STANDARD 14) 然后再次 编译 就可以了。
问题解决方案2-------------ros的 Cartographer,ninja, ce res- solver ,cartographer_ros安装及其问题,附上最好的安装方法(亲测有效)
一. 编译 Cartographer及其相关文件出错(强烈建议删除所有的相关文件,然后重新按照下面步骤安装-----------可别怪我没有提醒你,亲测有效!!!!!!) 1.出错内容(1): CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is no...
由于项目有使用到google的 ce res库,于是就踩了一天的坑。。。 以前做SLAM 编译 cartographer的时候其实也装过,当时很轻松的就装好了,也没 遇到 什么困难,但是这次被卡了一天… 在网上试过好几个 ce res版本,都是在make阶段报了一大堆错,开始以为是和eigen库不兼容的问题,eigen库也换了好几个版本,百度了半天也没找到原因,最后多亏了google大法。 最终发现问题是g++、gcc版本太低了,之前由于其他项目的需要将版本降级到了4.6,重新下载5.5版本并升级问题就解决了。 具体升级方
原因: 安装的 ce res库版本与eigen库版本冲突, 我的eigen库版本为3.3.7, 将 ce res换为1.14.0 版本的就能解决问题 1. 首先删除之前的 ce res- solver sudo rm -r /usr/local/lib/cmake/ Ce res sudo rm -rf /usr/local/include/ ce res /usr/local/lib/lib ce res.a sudo rm -rf /usr/local/lib/cmake/ Ce res .
你可以按照以下步骤进行 Ce res- Solver 计算库的 编译 安装: 1. 首先,确保你的系统已经安装了必要的依赖项,包括cmake、eigen3和suitesparse。你可以通过以下命令在Ubuntu上安装这些依赖项: sudo apt-get install cmake libeigen3-dev libsuitesparse-dev 2. 接下来,从 Ce res- Solver 的GitHub发布页面下载最新版本的源代码压缩包。你可以点击[这里](https://github.com/ ce res- solver / ce res- solver /releases/tag/2.1.0)访问该页面。 3. 解压下载的源代码压缩包,并进入解压后的目录。 4. 创建一个用于构建 Ce res- Solver 的build目录,并进入该目录: mkdir build cd build 5. 运行cmake命令来配置构建过程: cmake .. 你也可以通过添加额外的选项来定制构建过程。例如,如果你想使用Eigen的稠密矩阵支持,可以添加`-DEIGENSPARSE=OFF`选项。 6. 运行make命令进行 编译 : make -j4 这里的`-j4`表示使用4个线程进行并行 编译 ,你可以根据自己的系统进行调整。 7. 编译 完成后,运行make install命令进行安装: sudo make install 这将会将 Ce res- Solver 的头文件和库文件安装到系统默认的位置。 完成以上步骤后,你就成功地安装了 Ce res- Solver 计算库。你可以根据需要在自己的项目中使用它。如果需要更详细的安装说明或者其他帮助,请参考 Ce res- Solver 的官方文档。