windows下编译、配置ceres库(保姆级教程)


前言

ceres 库是谷歌开发的基于C++的优化库,
本文主要记录ceres库在windows下的编译以及安装配置
备注: 如果各位懒得编译请支持下 (编译好的ceres库):https://download.csdn.net/download/qq_40957243/80429292

一、cmake安装

cmake下载网址:cmake官网
安装文件
请根据自己的电脑配置选择安装文件,我是64位的电脑,安装文件如上;

具体的cmake安装可参考cmake安装教程

二、ceres 依赖库的下载

2.1.依赖库的下载

  • Eigen: https://gitlab.com/libeigen/eigen/-/releases
  • ceres: https://github.com/ceres-solver/ceres-solver
  • gflags: https://github.com/gflags/gflags
  • glog: https://github.com/google/glog
  • suitesparse: https://github.com/jlblancoc/suitesparse-metis-for-windows/releases
    下载完成–>解压–>

在这里插入图片描述

2.2.编译前准备工作

2.2.1.创建vs工程的输出文件夹

  • 任选一个位置创建3Dparty_VS文件夹,以此在该文件夹下创建各个编译输出文件夹,如下:
    在这里插入图片描述

2.2.2.创建编译库的输出文件夹

同样创建编译库的输出文件,如下
在这里插入图片描述

2.3.编译Eigen库

  • 打开cmake,分别输入源文件路径输出路径,其次进行config配置,具体配置和输入如下:
    在这里插入图片描述
  • config 配置如下
    根据自己安装的vs 选择(本人安装的是vs2019)在这里插入图片描述
  • configure 配置如下
    BUILD_TESTING: 取消勾选;
    CMAKE_INSTALL_PREFIX: 选择库的输出路径(2.2.2 创建的文件夹)

点击Generate: 生成VS工程,在/Eigen_VS_build/文件夹下
在这里插入图片描述
cmake基本流程:
输入源文件路径-》输出VS工程路径-》Configure-》Generate;其他库的编译均按照此流程

2.3.1.编译Eigen3

  • 利用vs2019 打开Eigen3.sln,分别以DEBUG和RELEASE 模式下生成INSTALL工程;生成后便可以看到Eigenlib下的库目录
    在这里插入图片描述

2.4.编译gflags

cmake编译gflags 类似Eigen,输入gflags路径-》输出VS工程路径-》Configure-》Generate;

配置选项:

  1. CMAKE_INSTALL_PREFIX :输出路径(2.2.2中创建的文件夹)
    在这里插入图片描述
    生成库文件
    打开gflags.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

2.5.编译glog

cmake编译glog类似Eigen,输入gflags路径-》输出VS工程路径-》Configure-》Generate;

配置选项
CMAKE_INSTALL_PREFIX :输出路径
在这里插入图片描述
生成库文件
打开glog.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

2.6.编译SuiteSparse

cmake编译suiteSparse类似Eigen,输入SuiteSparse 路径-》输出VS工程路径-》Configure-》Generate;

2.6.1. 生成静态库文件

先生成静态库文件,下一步生成动态库文件
配置文件
在这里插入图片描述
生成库文件
打开SuiteSparse.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

2.6.2.生成动态库文件

生成静态库文件后,重新配置cmake,生成动态库文件
配置选项
重新选中 SHARED
在这里插入图片描述
生成库文件
打开SuiteSparse.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

2.7.编译Ceres

cmake编译ceers类似Eigen,输入ceres路径-》输出VS工程路径-》Configure-》Generate;
配置文件
编译ceres 需要增加(add entry)一些选项如下:
配置过程中注意第三方库的依赖路径,注意配置选项每条都对上

  • BLAS_LIBRARIES(FILEPATH):E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/lib64/lapack_blas_windows/libblas.lib
  • LAPACK_LIBRARIES(FILEPATH)
    E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/lib64/lapack_blas_windows/liblapack.lib
  • GLOG(BOOL):选中打勾
  • SUITESPARSE_CHECK_INCLUDE_DIRS(PATH):E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/include
  • SUITESPARSE_CHECK_LIBRARY_DIRS(PATH):E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/lib64
    在这里插入图片描述

在这里插入图片描述
生成库文件
打开ceres.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

三、测试ceres库文件

3.1.获取所有头文件和库文件

创建ceres/文件夹,分别在文件夹下创建include和library两个文件夹
在2.2.2创建的*lib文件夹下,分别复制库文件,进行以下操作,3DpartyLib是生成的库文件路径

  • 复制E:\3Dparty\Ceres\3DpartyLib\CeresLib\include路径下的ceres文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include
  • 复制E:\3Dparty\Ceres\3DpartyLib\glogLib\include路径下的glog文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include
  • 复制E:\3Dparty\Ceres\3DpartyLib\gflagLib\include路径下的gflag文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include
  • 复制E:\3Dparty\Ceres\3DpartyLib\EigenLib\include\eigen3路径下Eigen文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include\ceres

    依次分别复制头文件,静态库文件,动态库文件如下:
    在这里插入图片描述

3.2.helloworld测试

3.2.1.创建vs工程,添加ceres源代码中example文件夹下的helloworld.cc 文件;

在这里插入图片描述

3.2.2.添加包含目录和库目录:

在这里插入图片描述

3.2.3.引入静态库

在这里插入图片描述

3.2.4.编译踩坑

  • 问题1:POSIX name for this item
    在这里插入图片描述
    解决方案
    预处理器中增加宏定义:_CRT_NONSTDC_NO_DEPRECATE

  • 问题2:
    错误 C1189 #error: ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h. See the document for detail. testHelloworld E:\3Dparty\Ceres\3DpartyLib\Ceres\Include\glog\log_severity.h 66
    解决方案
    预处理器中增加宏定义:GLOG_NO_ABBREVIATED_SEVERITIES

  • 问题3:错误 C2589 “(”:“::”右边的非法标记 testHelloworld
    在这里插入图片描述
    解决方案
    预处理器中增加宏定义:NOMINMAX
    参考解决方案

终于编译成功了!!!

但是、但是、但是

  • 执行过程中报错缺少dll库?
    解决方案
    缺什么库,就在ShareDLL文件夹下复制dll库至工程文件下;

最终执行成功
在这里插入图片描述
文末附上编译好的ceres库和测试demo:https://download.csdn.net/download/qq_40957243/80429292


# 总结 本文主要学习记录ceres库在windows下的编译过程,仅供学习参考

参考文献:

本着尊重原创的原则,在此附上参考文献,再次感谢两位作者;
Ceres Solver 在Windows下安装配置笔记
Ceres-Solver库使用(一)–windows下安装配置

  • 32
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值