C++优化库ceres-2.2.0 cmake+vs2022编译教程

littledai Lv2

Eigen下载编译

@官网下载压缩包并解压
-https://eigen.tuxfamily.org/index.php?title=Main_Page下载Eigen3.4版本的zip,如图1,解压到vs项目的文件夹下,如图2
@添加系统环境变量
-将Eigen解压目录添加到系统环境变量的Path中
@复制FindEigen3.cmake到cmake
-将解压后Eigen库中FindEigen3.cmake文件复制到cmake安装目录下,如图4,图5
@CMake构建
-在在eigen文件夹下新建build文件夹用来存放编译后的文件
-打开cmake,选择选中eigen存放的文件夹和刚建立的build文件夹,如图1
-先点击configure,再点击generate,结果如图2
-我这里是vs 2022版本就选择visual studio 17 2022
@vs编译
-如图2,用vs打开build文件夹下的ALL_BUILD.vcxproj,或者直接在cmake中点击open project
-如图3,选择Release x64模式,右击ALL_BUILD点击生成解决方案,终端会提示生成成功,若生成失败,则回到下载重新下载

googletest下载解压

abseil下载解压

gflags下载编译

@gflags下载-源码地址 https://github.com/gflags/gflags/releases/tag/v2.2.2 下载source code.zip,并解压到Ceres文件夹
@配置编译
-打开cmake,选择gflags文件夹和对应build文件夹,点击configure,勾选 BUILD_SHARED_LIBS 生成 lib 文件,再点击configure消红
-点击generate,再点击open project,在vs中右击ALL_BUILD点击生成解决方案

glog下载编译

@glog下载
-源码地址 https://github.com/google/glog/releases/tag/v0.7.1 下载source code.zip,并解压到Ceres文件夹
@配置编译
-打开cmake,选择glog文件夹和对应build文件夹,点击configure,勾选 BUILD_SHARED_LIBS 生成 lib 文件,gflags_DIR 为 gflags-build 路径,再次 Configure 消红然后 Generate,成功后打开 VS 工程
-在vs中右击ALL_BUILD点击生成解决方案

ceres-2.2.0下载编译

@ceres-2.2.0下载
-使用git clone https://github.com/ceres-solver/ceres-solver.git 或者在官网 https://github.com/ceres-solver/ceres-solver/releases/tag/2.2.0 上下载source code再解压到ceres-solver下,如图1

@将googletest和abseil放入ceres中
-将上面下载解压好的googletest文件夹和abseil-cpp文件夹复制到 本地目录/ceres-solver/third_party文件夹下,如图3(这里如果用解压source code的方法没有third_party文件夹就自己新建一个)

@配置编译ceres
-选择文件夹:打开cmake,选择选中ceres存放的文件夹和建立的ceres-build文件夹,如图4
-配置Eigen3路径:先点击configure,会cmake error,显示找不到eigen库,结果如图5,解决方案是把eigen/build的路径赋给Eigen3_DIR,并把eigen文件夹的路径赋给Eigen3_INCLUDE_DIR
-配置glog和gflags路径:再点configure,还是cmake error,出现新的红色提示,缺少glog和gflags的路径,这里把路径的对应关系为gflags_DIR对应gflags-build,glog_DIR对应glog-build,glog_INCLUDE_DIR对应glog-build/glog,并勾选上GFLAGS,如图7
-配置SuiteSparse路径(暂未完成非必需):SuiteSparse路径较多,SuiteSparse_DIR,如图8
-选择编译模式:再点击configure之后只剩一个红色提示,选择Release模式,如图10
-生成编译:再次点击configure发现红色提示都消失,点击generate,再点击open project进入vs,如图12,右击ALL_BUILD点击生成解决方案,终端会提示生成成功(生成时间较长),若生成失败,则要仔细检查以上每步,重新再来一遍

vs项目路径配置

@找到ceres库生成路径
-在cmake编译的时候设置install目录即为vs工程包含目录和库目录所在位置,如图1,打开ceres文件夹如图2
@包含目录设置
-将eigen目录和图二中的ceres/include设置进包含目录
@库目录设置
-将图二中ceres/lib设置进库目录
@链接器设置
-要链接的是库目录中所有lib文件,这里要链接的lib文件较多,部分截图如图5

  • 标题: C++优化库ceres-2.2.0 cmake+vs2022编译教程
  • 作者: littledai
  • 创建于 : 2025-06-19 15:07:49
  • 更新于 : 2025-06-19 15:34:23
  • 链接: https://littledyc.github.io/2025/06/19/C++优化库ceres-2.2.0 cmake+vs2022编译教程/
  • 版权声明: 本文章采用 CC BY 4.0 进行许可。
评论