windows下编译gtsam
Posted chengwei0019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下编译gtsam相关的知识,希望对你有一定的参考价值。
目录
GTSAM简介:
GTSAM 是一个在机器人领域和计算机视觉领域用于平滑(smoothing)和建图(mapping)的C++库。它与g2og2o不同的是,g2og2o采用稀疏矩阵的方式求解一个非线性优化问题,而GTSAM是采用因子图(factor graphs)和贝叶斯网络(Bayes networks)的方式最大化后验概率。
安装需求:
gtsam官网给出了 详细的安装过程,由于其依赖库比较少,安装起来比较方便。这里咱们主要介绍在windows下的安装(Ubuntu下几行代码就可以搞定,这里不再赘述)。
gtsam安装依赖要求:
-------BOOST库版本不低于1.43
-------CMake版本不低于2.6
本文的安装依赖版本:
安装环境:windows7+VS2017,64位
boost1.63
cmake3.16.6
gtsam3.2.3(为什么选择这个版本,因为尝试过3.2.1,4.0.0,4.0.2,安装都存在异常);
安装步骤:
1.分别安装好boost和cmake。
2.下载完成gtsam3.2.3,并解压。由于在虚拟机安装,本文解压地址为:C:/mycode/gtsam2.3.3
3.在gtsam文件中,新建build文件,打开cmake,分别设置source code和binaries
4.configure,可能会提示找不到boost,分别设置boost_dir和boost_include_dir,然后重新configure
5.generate,生成;
6.VS打开在build中打开生成的gtsam.sln文件。分别编译GeographicLib_STATIC,wrap_lib,CppUnitLite,gtsam,gtsam_unstable(可以按这个顺序分别生成);
7.如果上步木有异常,那么生成完成。之后可以使用ALL_BUILD生成全部项目,然后使用INSTALL安装gtsam(这里安装默认地址为:C:\\Program Files\\GTSAM)
安装中可能出现的异常
问题1:
error C2280: 'Eigen::Block<Derived,2,2,false> &Eigen::Block<Derived,2,2,false>::operator =(const Eigen::Block<Derived,2,2,false> &)': attempting to reference a deleted function
问题2:VS编译后INSTALL报错(error MSB3073)
解决办法:
1.由于在C盘运行,故需要以管理员身份运行此程序;
2.检查CAMAKE_INSTALL_PERFIX路径,即cmake的install安装路径,查看是否存在对应文件夹(当然也可以在cmake时修改安装路径)。本文这里需要在C盘创建一个GTSAM的文件夹;
3.如果还不行,可以修改 (install)项目–>属性–>生成事件–>后期生成事件–>在生成中使用–>否;
4.参考资料
相关学习资料:
【泡泡机器人公开课】第五十六课:gtsam解析 by 董靖 https://www.sohu.com/a/133646392_715754
G2o,GTSAM,Ceres,Tensorflow优化器的方法比较 https://blog.csdn.net/ziliwangmoe/article/details/86561157
GTSAM的安装与使用 https://blog.csdn.net/missiledefense/article/details/56319421
GTSAM的学习笔记 https://blog.csdn.net/qq_27262241/article/details/84291471
以上是关于windows下编译gtsam的主要内容,如果未能解决你的问题,请参考以下文章