windows+vs2015下安装ElasticFusion,包含Ceres Solver、Eigen、gflags、glog、suitesparse、Pangolin、OpenNI2

1 篇文章 0 订阅
1 篇文章 0 订阅

一、安装环境

windows10 64位

vs2015(不要高于2017,否则后期会报错)

Cuda 10.0

Cmake 3.18.2

安装git bash

二、源代码下载

创建文件夹:D:\Ceres_Install,下载的源代码都放在这个目录下,用git bash 下载,命令为git blone http://XX

1.Ceres Solver

官网地址: http://ceres-solver.org/installation.html

百度云盘(Ceres Solver 2.0.0版本):

链接:https://pan.baidu.com/s/1nKJPDPXYnkG4SwGDEZvQdQ

提取码:kcfq

2.Eigen

矩阵运算库

官网地址:https://gitlab.com/libeigen/eigen

gitee(速度快):https://gitee.com/yinlichang19/eigen.git

3.gflag

官网地址:https://gflags.github.io/gflags/

gitee(速度快):https://gitee.com/mirrors/gflags.git

4.glog

官网地址:https://github.com/google/glog.git

gitee(速度快):https://gitee.com/yinlichang19/glog.git

5.suitesparse-metis-for-windows

官网地址:https://github.com/jlblancoc/suitesparse-metis-for-windows

gitee(速度快):https://gitee.com/yinlichang19/suitesparse-metis-for-windows.git

6.Pangolin

官网地址:https://github.com/stevenlovegrove/Pangolin

百度云:https://pan.baidu.com/s/1K92B2iAR_MMteX8CO8AsEg

提取码:yx3j

7.OpenNI2

百度云: https://pan.baidu.com/s/1PP0unOK0DPNOMpFF5cbB_g

提取码:jkmq

8.ElasticFusion

官网地址:https://github.com/mp3guy/ElasticFusion

gitee(速度快):https://gitee.com/yinlichang19/ElasticFusion.git

三、安装

在D:\Ceres_Install,分别创建每个项目的build文件夹,同时创建install,在里面创建每个项目的文件夹。

安装过程参考:https://blog.csdn.net/weixin_44153180/article/details/110499667?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161226876316780266210135%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161226876316780266210135&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-5-110499667.first_rank_v2_pc_rank_v29&utm_term=VS2019+ceres&spm=1018.2226.3001.4187link

1.安装Eigen

启动Cmake,选好路径,如下:
在这里插入图片描述点击configure,选择 vs2015, x64

在配置选项中,

  • 取消 Test 类项,
  • 修改CMAKE_INSTALL_PREFIX=D:\Ceres_Install\install\eigen

再次Configure->Generate,用vs2015打开D:\Ceres_Install\eigen-build\Eigen3.sln,

点击 生成->批处理,选择INSTALL的Release和Debug,点击生成。

全部成功后,D:\Ceres_Install\install\eigen下有include和share两个文件夹。

2.安装gflags

同上,在配置选项中,

  • 取消BUILD_Testing
  • CMAKE_INSTALL_PREFIX=D:/Ceres_Install/install/gflags
  • 选中BUILD_SHARED_LIBS 以便生成.dll文件

点击 生成->批处理,选择ALL_BUILD和INSTALL的Release和Debug,点击生成。

3.安装glog

同上,在配置选项中

  • 取消选中BUILD_TESTING
  • CMAKE_INSTALL_PREFIX = D:/Ceres_Install/install/glog
  • 选中WITH_GFLAGS
  • gflags_DIR = D:/Ceres_Install/install/gflags/lib/cmake/gflags
  • 选中BUILD_SHARED_LIBS以便生成.dll文件。如果该项不存在通过“Add Entry”手动加入。

点击 生成->批处理,选择ALL_BUILD和INSTALL的Release和Debug,点击生成。

4.安装Suitespares

同上,在配置中

  • 选中BUILD_METIS。
  • 取消选中HAVE_COMPLEX,否则也会有很多莫名其妙的错误,这些错误和平台的兼容性有关。
  • SUITESPARES_INSTALL_PREFIX =D:/Ceres_Install/install/suitesparse 。
  • CMAKE_INSTALL_PREFIX =D:/Ceres_Install/install/suitesparse 。
  • 取消选中SHARED。如果选中会报错,宣称缺少一系列.lib文件。

点击 生成->批处理,选择ALL_BUILD和INSTALL的Release,点击生成。

然后回到cmake的配置中,选中SHARED项,再次生成。

然后点击 生成->批处理,选择ALL_BUILD和INSTALL的Debug,点击生成。

因为再上一过程中.lib文件已经被生成并且安装(上一轮编译一定要生成INSTALL),所以这时不会再报错说缺少.lib文件了。

5.安装Ceres Solver

此配置来自于上文的参考链接。

同上,配置时:

  • 取消选中BUILD_EXAMPLES、BUILD_TESTING。为了节省后续编译时间。
  • 选中BUILD_SHARED_LIBS,以便生成动态链接库文件。
  • 选中CUSTOM_BLAS。
  • 添加BLAS_LIBRARIES项(FILEPATH类)赋值 D:/Ceres_Install/suitesparse-master/lapack_windows/x64/libblas.lib
  • 选中LAPACK。
  • 添加LAPACK_LIBRARIES项(FILEPATH类)赋值 D:/Ceres_Install/suitesparse-master/lapack_windows/x64/liblapack.lib
  • 选中EIGENSPARSE。
  • Eigen3_DIR=D:/Ceres_Install/eigen-build
  • 选中GFLAGS和GLOG,并且正确定位。一般再次configure应该可以自动定位,可以勾选上Advanced查看自动定位路径,如果配置信息显示NOTFOUND,可以手动add entry,添加GLOG和glog_DIR
    在这里插入图片描述
  • 选中SUITESPARSE,注意这一选项会自动取消选中。
  • 添加CMAKE_INSTALL_PREFIX 赋值 D:/Ceres_Install/install/ceres。
    重点!!需要手动配置配置AMD、BLAS、CAMD、CCOLAMD、CHOLMOD、CXSPARSE、COLAMD、SUITESPARSE、SUITESPARSEQR等9个头文件的路径以及相应的9个静态库的路径。
    在这里插入图片描述
    可以点击Grouped,依次手动定位到相应的路径

点击Generate。打开sln,点击 生成->批处理,选择ALL_BUILD和INSTALL的Release,点击生成。

切换到Debug模式。然后右键单击“ceres”项目->属性 ->链接器->输入->附加依赖项。这里要注意属性配置也应设为Debug模式。

将以下7个Release版本的库改为Debug版本的库

D:\Ceres_Install\install\suitesparse\lib\libspqr.lib

D:\Ceres_Install\install\suitesparse\lib\libcholmod.lib

D:\Ceres_Install\install\suitesparse\lib\libccolamd.lib

D:\Ceres_Install\install\suitesparse\lib\libcamd.lib

D:\Ceres_Install\install\suitesparse\lib\libcolamd.lib

D:\Ceres_Install\install\suitesparse\lib\libamd.lib

D:\Ceres_Install\install\suitesparse\lib\suitesparseconfigd.lib

调整为Debug版本库:

D:\Ceres_Install\install\suitesparse\lib\libspqrd.lib

D:\Ceres_Install\install\suitesparse\lib\libcholmodd.lib

D:\Ceres_Install\install\suitesparse\lib\libccolamdd.lib

D:\Ceres_Install\install\suitesparse\lib\libcamdd.lib

D:\Ceres_Install\install\suitesparse\lib\libcolamdd.lib

D:\Ceres_Install\install\suitesparse\lib\libamdd.lib

D:\Ceres_Install\install\suitesparse\lib\suitesparseconfigd.lib

然后生成ALL_BUILD和INSTALL项目,完成Debug模式的编译和安装过程。

6.配置环境变量

D:\Ceres_Install\install\ceres\bin;

D:\Ceres_Install\install\gflags\bin;

D:\Ceres_Install\install\glog\bin;

D:\Ceres_Install\install\suitesparse\bin;

D:\Ceres_Install\suitesparse-metis-for-windows\lapack_windows\x64;

7.安装OpenNI2

同上,配置时:

  • CMAKE_INSTALL_PREFIX 赋值 D:/Ceres_Install/install/OpenNI2
    生成sln。

打开,点击 生成->批处理,选择ALL_BUILD和INSTALL的Release和Debug,点击生成。

8.安装Pangolin

同上,配置时:

  • CMAKE_INSTALL_PREFIX 赋值 D:/Ceres_Install/install/Pangolin
    取消BUILD_EXAMPLES、 MSVC_USE_STATIC_CRT
  • OPENNI2_INCLUDE_DIR: D:/Ceres_Install/install/OpenNI2/Include
  • OPENNI2_LIBRARY:D:/Ceres_Install/install/OpenNI2/Lib/OpenNI2.lib
  • EIGEN3_INCLUDE_DIR: D:/Ceres_Install/eigen

生成sln。打开,点击 生成->批处理,选择ALL_BUILD、INSTALL、zlib、libjpeg、libpng的Release和Debug,点击生成。

9.安装ElasticFusion的Core

在这里插入图片描述

同上,配置时,以下会自动生成,如果没有,自行添加修改:
在这里插入图片描述- 修改CMAKE_INSTALL_PREFIX 赋值 D:/Ceres_Install/install/libefusion

  • 选中BUILD_SHARED_LIBS

生成sln。打开,点击 生成->批处理,选择ALL_BUILD、INSTALL的Release和Debug,点击生成。

10.安装ElasticFusion的GUI

注释掉GUI/scr/Findefusion.cmake中第27行

因为用不到RealSense,直接在GUI/scr/CMakeLists.txt中,修改第30行:

把if(WIN32)改为if(WITH_REALSENSE),其中WITH_REALSENSE已经被定义为False。

cmake同上,配置时:

  • LAPACK_LIBRARIES:D:/Ceres_Install/suitesparse-metis-for-windows/lapack_windows/x64/libblas.lib
  • LAPACK_BLAS:D:/Ceres_Install/suitesparse-metis-for-windows/lapack_windows/x64/libblas.lib
  • ZLIB_INCLUDE_DIR:D:/Ceres_Install/Pangolin-build/external/zlib/include
  • ZLIB_LIBARAY_DEBUG:D:/Ceres_Install/Pangolin-build/external/zlib/lib/zlibstaticd.lib
  • ZLIB_LIBARAY_RELEASE:D:/Ceres_Install/Pangolin-build/external/zlib/lib/zlibstatic.lib
  • EFUSION_INCLUDE_DIR = D:/Ceres_Install/ElasticFusion/Core/src
  • EFUSION_LIBRARY = D:/Ceres_Install/install/libefusion/lib/efusion.lib
  • 还需要添加Pangolin 、OpenNI2 、SuiteSparse 等的include和lib
    其它如果还有错误,可根据提示添加相应路径和lib

生成sln。打开,点击 生成->批处理,选择ALL_BUILD的Release和Debug,点击生成。

10.1 错误集合:

Actually build ElasticFusion error: ‘glDrawFrustrum’ is not a member of ‘pangolin’

方法:点击错误,跳到错误位置,把glDrawFrustrum改为glDrawFrustum(少个r)

参考:https://blog.csdn.net/qq_37263498/article/details/80807206 link

严重性 代码 说明 项目 文件 行 禁止显示状态

错误 LNK2005 glewInit 已经在 efusion.lib(efusion.dll) 中定义 ElasticFusion D:\Ceres_Install\ElasticFusion\gui_build\glew.lib(glew.obj) 1

方法:把efusion.lib放在glew.lib后面

参考:https://github.com/mp3guy/ElasticFusion/issues/65
link
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值