Windows下Ceres库的配置 包含四个依赖库Eigen、gflags、glad、suitesparse-metis-for-windows的配置
作者:互联网
一、首先Windows下Ceres库的配置过程中Eigen、gflags、glad是必须的,suitesparse虽不是必须但非常影响性能故也可以说是必须的。
二、整个配置过程主要参考这一博客博主猪蹄97关于ceres库的配置,侵删,故读者在读到本博客时可以结合这篇博文,并以链接中的博文为主,本篇博文为辅,希望能帮到您
三、本篇博文的定位是做一些补充并解决几点配置过程中的问题
1.首先如无必须更改的原因。建议就按以下的版本进行配置:Eigen3.3.8、gflags2.2.2、glad0.4.0、suitesparse采用suitesparse-metis-for-windows、Ceres2.0.0,按此版本可避免一些不必要的麻烦,比如我曾经采用glad0.5.0这一版本,即使gflags配置无误也一直在生成时报错:
fatal error C1083: 无法打开包括文件: “gflags/gflags.h”: No such file or directory
2.在ceres的官方文件中强调suitesparse需要LAPACK,suitesparse-metis-for-windows已经内含了LAPACK,故不需要另外下载
3.在SuiteSparse这一部分的配置过程中会有两次ALL_BUILD项目和INSTALL项目的生成过程,注意在第二次将shared选项勾选后再去生成时会出现“出现无法解析的外部符号”这种链接错误,解决方法是:如果你是按照上面提到的博客建的文件夹,那么找到suitesparse-build这一文件夹,继而打开SuiteSparse找到metis-5.1.0(可能你现在的版本号已经变了,这无所谓主要是找到metis),打开其中的programs\CMakeLists.txt,修改如下,刚打开时绿色框中的部分是没有的这是需要你添加的,即在每行的后面添加 …/GKlib/getopt.c:
4.最后一步Ceres库的配置非常繁琐,需要耐心把所有的改完直到和博文中的一样,AMD、BLAS、CAMD、CCOLAMD、CHOLMOD、CXSPARSE、COLAMD、SUITESPARSE、SUITESPARSEQR这九项一定要改正确,再次点击configure出现的内容一定要和下图完全相同,尤其是绿色框中的内容必须要有,表示你配置的依赖库全部找到,如果并没有和图中的内容完全相同,继续修改直至相同。我配置的时候glog的选项和路径都没有也要加上!注意检查要选中SUITESPARSE!我在配置过程中还配置了这两项才成功:添加SUITESPARSE_CHECK_INCLUDE_DIRS项(PATH类)赋值 C:/VCProject/ceres/suitesparse-build/install/include ,提示suitesparse组件头文件位置。添加SUITESPARSE_CHECK_LIBRARY_DIRS项(PATH类)赋值 C:/VCProject/ceres/suitesparse-build/install/lib,提示suitesparse组件库,把其中的路径要改成你的路径!
标签:博文,gflags,Ceres,Eigen,配置,metis,ceres,suitesparse 来源: https://blog.csdn.net/weixin_44142774/article/details/120676297