vs2013下配置ceres solver

window下Ceres-solver配置 在网上看了很多Ceres在windows下的配置教程,一般都是下载Ceres源码以及其依赖Eigen、gflag、glog,然后整合起来cmake。看这些教程评论区出现了各种问题,我就没有尝试。 记录一下在官网给出的另外一种配置方法,亲测成功。 我尝试的办法配置起来较为简单,用到了这个仓库:https://github.com/tbennun/ceres-windows git clon... 阅读详情

由于想要做一些优化处理的工作,所以今天花了几个小时编译了一下ceres solver,这里对我的安装过程做个记录,希望对大家有些帮助。

Ceres Solver是由Google开发的非线性最小二乘问题的求解工具。

在Windows下使用Ceres,需要必备的库有eigen,glog,gflags三个,可选的还有suitesparse,不过由于时间关系,suitesparse我没有编译,等有空的时候,搞一下吧。

Ceres用的是ceres-solver-1.11.0

eigen用的是eigen-3,此外还有glog,gflags,cmake-3.6.1-win32-x86

Suitesparse用的是 suitesparse-metis-for-windows  

我等下会给出下载链接。

1. 文件布局

首先将ceres、gflags、eigen,glog解压放到同一个文件夹中,如D:/ceres;

2. 安装CMAKE,安装随意

3, 编译glags,glog

这里打开glog-master文件夹,找到google-glog.sln,双击打开。可能会存在VS版本不同的问题(这个小问题),加载完以后,直接编译就可以。对应Debug和Release模式,会分别生成链接库。Debug生成结果如下图:

之后编译glags,由于glag里面没有*.sln文件,所以这里需要用Cmake。

进入gflags-master文件夹,在里面新建build_test文件夹,打开cmake,如下图所示,点击第一个browse sourse,设置源码所在位置,点击第二个browse sourse,设置生成文件所在位置,这个位置,会生成一个.sln 文件。

点击configure,之后generate,OK。生成结果如下:

注意:(此部分在2013编译未出现,在2017编译中出现)在生成中可能会出现  error C3861: “snprintf”: 找不到标识符  

通过查看函数定义,可以发现程序中函数实现部分未启用(如下图),然后写着msvc 2015 already defines,怀疑是VS的版本问题。项目右键属性---常规---windows SDK版本,修改为10.0.15063.0(之前是8.1,),然后重新编译,通过。

同glog一样,用打开,编译。针对debug和release可以分别生成库文件。

4. 编译ceres

利用cmake生成ceres,首先在 D:\ceres\ceres-solver-1.11.0中新建build文件用于存放编译结果,如图: 

点击configure,选择visual stutio 12 2013编译环境。

注意:

configure会存在一些错误,主要是由于没有将eigen、gflags和glog及其编译后的lib的路径加进去导致的,加上后就可以了。 


另:eigen库直接解压即可,不需要另外编译

设置目录如下:

EIGEN_INCLUDE_DIR为”D:\ceres\eigen“ 
GLOG_INCLUDE_DIR为”D:\ceres\glog-master\src\windows“
GLOG_LIBRARY为”D:\ceres\glog-master\Debug\libglog.lib“
GFLAGS_INCLUDE_DIR为"D:\ceres\gflags-2.0"
GFLAGS_LIBRARY为"D:\ceres\gflags-2.0\Debug\libgflags-debug.lib"

建议:将选项中的EIGENSPARSE勾上!!!不要问我为什么,尝试过,也错过,不想你们走弯路,虽然我还不清楚为什么要这样。

这里要根据自己的文件名称,安装位置,修改为指定文件夹。
再次configure done和generate done表示成功。 

最后,打开ceres.sln,生成ALL_BUILD,不出意外应该没什么问题(这里我出问题了,等了三十分钟,结果编译出现一些错误,看建议)


建议:
打开之后可以看到很多解决方案,除了ceres之后其他都是例子,这里可以只生成ceres,注意在生成ceres时,为防止gflag与windows对GDI调用时对error设置的冲突,可以用预处理器解决,方法是:在右键ceres属性-配置属性-C/C++-预处理器(Preprocessor)-预处理器定义处加上GLOG_NO_ABBREVIATED_SEVERITIES,注意不要把原来这里的定义删掉。
5. 全部生成完成之后,可以\ceres目录下新建Include,Library两个文件夹 
      
头文件
将\ceres\ceres-solvers-1.11.0\include下的文件夹ceres复制到Include下;
将\ceres\ceres-solver build\config\ceres\internal下文件config.h复制到\ceres\Include\ceres\internal中;
将\ceres\glog-master\src\windows下的glog文件夹复制到Include下;
将\ceres\gflags-build\include下的gflags文件夹复制到Include下;
将\ceres\eigen 3下的Eigen文件夹复制到\ceres\Include\ceres下; 

库文件(以32Debug为例)

将\ceres\glog-master\Debug下libglog.dll复制到系统盘\Windows\System32下;
将\ceres\glog-master\Debug下libglog.lib复制到\ceres\Library;
将\ceres\ceres-solver build\32Debug\lib\Debug下的ceres-debug.lib复制到\ceres\Library;
将\ceres\gflags-build\lib\Debug下的gflags_static.lib和gflags_nothreads_static.lib复制到\ceres\Library;
测试与使用

1. helloword

新建一个helloword的工程文件;
将\ceres\ceres-solver-1.11.0\examples中的helloworld.cc文件复制到工程文件中;
设置工程的包含文件:项目 - helloworld属性 - VC++目录 - 包含目录 上添加D:\ceres\Include;
添加附加依赖项:项目 - helloworld属性 - 连接器 - 输入 - 附加依赖项 上添加D:\ceres\Library\ceres-debug.lib和C:\ceres\Library\libglog.lib。
生成项目并开始执行,最终会在命令窗口中看到convergence,收敛,证明成功了

注意:可能会提示缺少libglog.dll文件,那么把生成的libglog.dll文件复制到这个测试文件的Debug文件中,即可执行。
2. circle_fit
同1一样,新建circle_fit项目,项目 - 属性 - VC++目录 - 包含目录,添加D:\ceres\Include;
项目- 属性-链接器-常规 -附加库目录,添加 D:\ceres\lib,
项目- 属性- 链接器 -输入 - 附加依赖性,添加 ceres-debug.lib
libglog.lib
gflags_nothreads_static.lib
gflags_static.lib
然后编译执行即可。
注意,可能会出现错误
错误    4    error LNK2019: 无法解析的外部符号 __imp__PathMatchSpecA@8,该符号在函数 "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall google::`anonymous namespace'::CommandLineFlagParser::ProcessOptionsFromStringLocked(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum google::FlagSettingMode)" (?ProcessOptionsFromStringLocked@CommandLineFlagParser@?A0x59ef3969@google@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV45@W4FlagSettingMode@3@@Z) 中被引用    E:\Projects_Windows\test_ceres\circle_fit\gflags_nothreads_static.lib(gflags.obj)    circle_fit
错误    5    error LNK1120: 1 个无法解析的外部命令    E:\Projects_Windows\test_ceres\Debug\circle_fit.exe    1    1    circle_fit
 

解决方法:在项目-属性-链接器-输入中添加 shlwapi.lib
把代码中CERES_GFLAGS_NAMESPACE替换为GFLAGS_NAMESPACE,代码前面添加 using namespace GFLAGS_NAMESPACE;
3. curve_fit
同2一样,复制ceres中的example中的curve_fit.cc,新建项目,添加配置。直接编译,运行,无错误。
--------------------- 
作者:chengwei0019 
来源:优快云 
原文:https://blog.youkuaiyun.com/u012700322/article/details/75321609 
版权声明:本文为博主原创文章,转载请附上博文链接!

在Visual Studio 2013上编译Ceres库:64位平台指南 在探索现代计算机视觉与机器人领域时,经常会遇到需要解决非线性最小二乘问题的场景。Ceres Solver是一个由Google提供的开源库,用于解决大型复杂非线性最小二乘问题。它被广泛应用于三维重建、视觉定位与映射(SLAM)等。Ceres Solver通过提供高效、稳定且可扩展的求解算法,显著简化了求解过程。在本章中,我们将首先介绍Ceres Solver的基本概念,进而深入分析其核心功能和使用场景。 阅读详情

相关推荐

VS2015 x64一键集成Ceres非线性优化依赖包(含glog/gflags/Eigen/LAPACK等预编译库)

专为Visual Studio 2015 64位开发环境打包的Ceres Solver完整依赖集合,开箱即用。包含glog、gflags、Eigen、LAPACK、FreeImage、GLEW等全部必需第三方库的VS2015 x64预编译版本,每个库均提供头文件(include)、静态库(lib)、动态库(dll)及可执行文件(bin),目录结构清晰独立。Ceres自身已编译出dll和lib,支持直接链接。配套CMakeLists.txt和find_package调用示例,也兼容手动链接方式。Example

ppp33的博客 200

VS2013+Ceres编译教程 Win7系统

由于想要做一些优化处理的工作,所以今天花了几个小时编译了一下ceres solver,这里对我的安装过程做个记录,希望对大家有些帮助。Ceres Solver是由Google开发的非线性最小二乘问题的求解工具。在Windows下使用Ceres,需要必备的库有eigen,glog,gflags三个,可选的还有suitesparse,不过由于时间关系,suitesparse我没有编译,等有空的时候,搞...

chengwei0019 3339

VS2013-Debug-Win32编译成功的Ceres Solver配置文件

VS2013-Debug-Win32 【属性管理器】->【Debug|Win32】->【通用属性】->【VC++目录】->【包含目录】 D:\Setup\CeresSolver\CeresSolverVS2013Win32\include D:\Setup\CeresSolver\CeresSolverVS2013Win32\include\ceres D:\Setup\CeresSolver\CeresSolverVS2013Win32\include\Eigen D:\Setup\CeresSolver\CeresSolverVS2013Win32\include\gflags D:\Setup\CeresSolver\CeresSolverVS2013Win32\include\glog 【属性管理器】->【Debug|Win32】->【通用属性】->【VC++目录】->【库目录】 D:\Setup\CeresSolver\CeresSolverVS2013Win32\lib 【属性管理器】->【Debug|Win32】->【链接器】->【输入】->【附加依赖项】 ceres-debug.lib glog.lib libgflags-debug.lib

ceres-solver在vs2013_x64编译记录(附编译完成资源)

背景介绍 因为相机新标定算法开发需要,借助ceres库求解非线性方程的能力,基于大量相机标定图像数据,求解相机的内外参数。ceres-solver在windows上编译较为麻烦,经常因为勾选的不正确导致最终编译的库不能正常适用,特记录该过程。

yuleaf_csdn的博客 961

vs2013_x64平台编译的ceres库

vs2013_x64平台编译的ceres库

windows下的glog相关编译文件libglog.dll和libglog.lib等

windows下的glog,版本是0.3.3,用vs2015编译好的libglog.dll和libglog.lib和libglog_static.lib 以及glog的包含文件,亲测能用

Windows 配置 Ceres-solver

Windows 配置 Ceres-solver (Visual Studio) Ceres Solver是由Google开发的非线性最小二乘问题求解工具包 本文重点 安装必备及下载 安装步骤 测试与使用 参考资源

bitheng的专栏 1万+

PADS Layout差分对布线实战:从规则设置到高速信号优化

本文详细讲解了在PADS Layout中进行差分对布线的完整实战流程。从在Layout中定义差分对网络,到进入Router配置线宽、间距等关键规则,再到布线实战技巧与高速信号完整性优化,系统阐述了如何确保差分信号(如USB、HDMI)的稳定传输,是高速PCB设计的核心技能。

weixin_29274969的博客 522

Ceres配置(vs2013+Win10)

主要参考文:Ceres Solver 在Windows下安装配置笔记   eigen、gflags、glog、suitesparse按照上面的链接中的指导配置即可。   配置ceres的时候,按照上面的链接内容配置,在点击configure后会出现在findeigen.camke文件中报错,提示找不到eigen。我们需要在eigen文件中搜索该出错的文件,打开找到set(EIGEN_IN...

weixin_30797027的博客 402

PADS VX2.4 缝合孔(阵列过孔)的添加方法

缝合孔的主要目的是:①:增加底层和顶层的地铜皮的连接性,②:起到屏蔽外界信号干扰的作用。铺完铜后,右击空区域选择“选择形状”命令,选取整板中的一块大铜皮,右击选择“覆铜区域内过孔阵列模式”→“沿周边”指令后,再右击选择“覆铜区域内过孔阵列”,便能看到已选区域内添加的缝合孔(过孔阵列),也可以通过铜皮显示或隐藏的无模命令:PO进行查看。完成上面的“防止错误”和“过孔样式”的设置后,开始对整板进行铺铜处理,点击“工具栏”→覆铜平面指示器,在弹出的对话框点击“开始”,便能观察铺铜后的板子。

tianpu2320959696的博客 3055

AS7341光谱传感器实战:如何用STM32F103精准测量环境色温(附完整代码)

本文详细介绍了如何使用STM32F103驱动AS7341光谱传感器实现环境色温的精准测量。从硬件连接到驱动开发,再到色温计算算法的实现,提供了完整的代码示例和优化建议,帮助开发者在智能照明、农业监测等领域快速应用AS7341进行高精度色温检测。

weixin_30352645的博客 478

VS2013+64位win7系统ceres solver编译教程

Ceres Solver是由Google开发的非线性最小二乘问题求解工具包,VS下虽然可以使用别人编译好的ceres.sln文件,虽然这样相对简单,但是可能会因为个人机器环境、软件配置的不同而无法使用。所以配置Ceres最好的方法是使用cmake工具生成自己的Ceres.sln。 使用ceres必备的库有eigen、glog和gflags三个,附下载地址 Ceres最新版本ceres-solv

无名小卒 7603

Windows 10/11蓝屏急救:SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION报错全攻略(附安全模式+CMD修复)

本文针对Windows 10/11系统常见的SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION蓝屏报错,提供了从诊断到修复的完整解决方案。文章深入剖析了该错误与系统安全功能“内存完整性”及pci.sys驱动的关系,并详细指导用户如何通过安全模式进行基础修复,以及使用命令提示符执行高级系统文件修复和注册表修改,帮助用户彻底解决蓝屏问题并恢复系统稳定。

echo99的专栏 968

VS2013 ceres-solver编译

1,准备好ceres-solver, gflags, glog, eigen三个压缩包,并且在ceres目录下分别新建以下文件,如下图所示 2,

heroacool的专栏 2839

密码学实战:如何利用生日攻击破解哈希函数

本文深入探讨了生日攻击在密码学中的应用及其对哈希函数的威胁。通过分析生日悖论的数学原理,揭示了哈希函数在实际应用中的脆弱性,并提供了防御策略,如升级哈希算法、正确使用加盐技术等。文章结合实战案例,帮助开发者理解如何有效防范此类攻击,确保系统安全。

weixin_42530732的博客 192

Floyd (弗洛伊德)算法简述

Floyd在1962年由Robert Floyd以其当前公认的形式出版。算法作为三个嵌套for循环的现代公式首先由Peter Ingerman在1962年描述。Floyd 算法是解决图论问题的比较经典的算法,是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图的最短路径问题。

慕羽★的博客 2万+

ceres-solver库x64版本编译说明

如果你需要使用ceres-solver库中的 snavely_reprojection_error.h这个头文件。 #include "ceres/ceres.h" #include "..\ceres-solver\examples\snavely_reprojection_error.h" 请务必看一下这篇文章避免走弯路,笔者走了不少弯路,花了三天的时间才最终编译成功,当然了学艺不精是...

秋月的私语 937

科研绘图系列:基因突变瀑布图统计以及可视化

科研绘图系列:基因突变瀑布图统计以及可视化

专注生信领域 1654

Ceres-solver简介及Windows 配置

Windows 下 配置 Ceres-solver (Visual Studio) 本文介绍内容: 在windows Visual Studio 上配置 Ceres-solver Ceres-solver简介本文重点安装必备及下载安装步骤测试与使用参考资源 Ceres-solver简介 Ceres Solver是由Google开发的非线性最小二乘问题求解工具包, 

前路漫漫的博客 5267

动手在 SAP BTP Cloud Foundry 开发和部署 SAP UI5 应用的前置条件 - 订阅 SAP Build Work Zone Standard Version

摘要:本文介绍了SAP BTP Cloud Foundry环境中HTML5应用的概念,区分了web应用、HTML5应用和SAP UI5应用的关系。重点说明了在Cloud Foundry环境部署HTML5应用的方法是通过订阅SAP Build Work Zone standard edition服务,并详细描述了订阅过程中可能遇到的"OIDC trust missing"错误。该错误是由于业务用户认证需要配置SAP Cloud Identity Services的OpenID Connec

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 313

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

windows 7 下VS2013编译Ceres,含suitesparse的部分

最近在做一个需要用到ceres的项目,搞了很久也没配置好,发现网上很多资料都不全面,甚至误导!因此写下这篇博客,希望对有需要的同学有所帮助。 首先,大部分的信息都可以从官网找到 http://www.ceres-solver.org/installation.html#building-using-custom-blas-lapack-installs 首先一些基本的依赖库都必须生成或安装,

来小东的博客 2710

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Ceres Solver的使用(非线性库使用)

https://blog.youkuaiyun.com/cqrtxwd/article/details/78956227

278

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Windows环境下配置Ceres(带suitesparse-metis)

1 配置环境与源代码包 环境 Windows>=8.1 Visual Studio>=2013 专业版x64 Cmake GUI>=3.13 Ceres-solver 1.14.0 下载地址:http://ceres-solver.org/installation.html Eigen 3.3.5 release 下载地址:http://eigen.tuxfamily.org/inde...

simple的博客 2639

17 win7 sp1 x64/VS2015下配置creo4.0二次开发环境——调用了众多开源库(ceres-solver,PCL1.8.0,office 2016COM接口,MySql数据库等)...

0 引言 本次开发环境的配置是在综合考虑了开源库的版本、VS版本以及CREO4.0的版本,同时针对甲方需求选择了win7 sp1 x64系统。 配置的过程中遇到了形形色色的问题,但是一一解决了。通过这一个帖子,希望总结环境配置的经验,为以后的项目开发提供借鉴。 1 VS2015 在win7 sp1 x64下的安装 之前写过一个帖子 win7 sp1下安装 VS2015 https:/...

weixin_30649641的博客 418

保姆级避坑指南:在Ubuntu 20.04上搞定XTDrone与ego-planner的编译与依赖(含Eigen3.3.7重装方案)

本文提供Ubuntu 20.04下XTDrone与ego-planner的保姆级避坑指南,详细解决Eigen3.3.7重装、ceres兼容性等路径规划中的常见问题,帮助开发者高效完成三维运动规划环境搭建与调试。

weixin_33701564的博客 450

solver

slover中有type,用于优化算法的选择,有6种: Stochastic Gradient Descent (type: “SGD”), AdaDelta (type: “AdaDelta”), Adaptive Gradient (type: “AdaGrad”), Adam (type: “Adam”), Nesterov’s Accelerated Gradient (type: “N...

weixin_34129145的博客 122
上一篇: SLAM入门之视觉里程计(5):单应矩阵
下一篇: Google-glog 日志库使用手记
everagain
博客等级 码龄18年 5粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值