vs2015+64位win10系统ceres-solver编译

记录下自己编译ceres-solver走过的弯路,同时希望对其他人能有所帮助。

编译过程主要参考以下两篇博文,但还是存在一些大坑,后面我会着重强调。

http://blog.csdn.net/streamchuanxi/article/details/52944652

http://blog.csdn.net/yizhou2010/article/details/52596280

1. 下载必备库ceres-solver-1.11.0、eigen、gflags-2.0、glog-master

具体下载地址自行上网搜索,下载后解压到文件夹ceres中。

在接下的编译过程中,需要十分注意的是:千万不要做平台的修改,必须在win32/x86下编译,否则即使最后成功也无法使用!!!

2. 编译glog

解压后直接用vs2015打开google-glog.sln,版本问题直接迁移即可。

生成失败主要解决以下两个问题:

问题一:

错误 C2375 “snprintf”: 重定义

解决方法:注释掉语句

//extern int GOOGLE_GLOG_DLL_DECL snprintf(char *str, size_t size,

// const char *format, ...);”

问题二:

错误 C2084 函数“int snprintf(char *const ,const std::size_t,const char *const ,...)”已有主体”

解决方法:

同样注释掉语句

“//int snprintf(char *str, size_t size, const char *format, ...) {

// va_list ap;
// va_start(ap, format);
// const int r = vsnprintf(str, size, format, ap);
// va_end(ap);
// return r;
//}”

3. 编译gflags

同样用vs2015打开gfalgs.sln(高版本貌似需要用cmake生成工程后再编译)。

主要存在以下几个问题:

问题一:

“错误 C2375 “snprintf”: 重定义;不同的链接 libgflags d:\ceres\gflags-2.0\src\windows\port.h 60”

错误 C2084 函数“int snprintf(char *const ,const std::size_t,const char *const ,...)”已有主体”

解决方法:同上,注释掉语句

问题二:

错误 C3688 文本后缀“PRIu64”无效;未找到文文本运算符或文本运算符模板

解决方法:
将"%"PRId32改为“%d”

将"%"PRId64改为”%I64d“

将"%"PRIu64改为”%I64u“

4. 编译ceres

采用cmake的方式(若不会使用可参照开头给出的链接)

另: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勾上!!!

否则即使最后成功生成在很多情况下也是运行失败的。

Configuring done and generating done.

最后,打开ceres.sln,生成ALL_BUILD,不出意外应该没什么问题。

5. 整理并使用

所需的各种文件已经全部生成,下面进行适当的整理就可以使用了。

在ceres目录下新建include和lib文件夹(便于项目添加)

将以下文件复制到include文件夹:

D:\ceres\ceres-solver-1.11.0\include\ceres

D:\ceres\ceres-solver-1.11.0\config\ceres\internal(复制到D:\ceres\include\ceres\internal文件夹中)

D:\ceres\glog-master\src\windows\glog

D:\ceres\gflags-2.0\src\windows\gflags

D:\ceres\eigen\Eigen

将以下文件复制到lib文件夹:

D:\ceres\glog-master\Debug\libglog.lib

D:\ceres\ceres-solver-1.11.0\mybuild\lib\Debug\ceres-debug.lib

D:\ceres\gflags-2.0\Debug\libgflags-debug.lib

D:\ceres\glog-master\Debug\libglog.dll(复制到C:\Windows\SysWOW64文件夹中)

好了,所有的工作都已经完成了,最后只要在需要用到ceres的项目中添加c++目录和链接器即可。

时间: 2024-12-24 09:09:11

vs2015+64位win10系统ceres-solver编译的相关文章

【2016新年版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统

本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎,系统增加了搜狗输入法,安装过程需要用户手动创建个人账户等步骤,为保证系统的稳定性,win10为未激活版本,如需激活可通过微软官方购买,另外用户可以通过激活工具在线激活. 更新情况:+更新-万能驱动助理至V6.5+更新-虚拟内存智能转移至D盘+更新-winRAR V5.21+更新-我的文档转移至D盘

XP,32/64位Win7,32/64位Win10系统【电脑城版】

随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式发布Win10的消息越来越像回事了.Windows 10 Build 10074主要新特性:•用户体验持续改进进一步优化对高DPI显示设备和多显示设备的支持:•Aero Glass特效回归基于众多WindowsInsider项目参与者反馈希望重新看到AeroGlass特效(即半透明效果),微软在10074版中尝试加入

XP,32/64位Win7,32/64位Win8,32/64位Win10系统 【春节版】

本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎,系统增加了搜狗输入法,安装过程需要用户手动创建个人账户等步骤,为保证系统的稳定性,win10为未激活版本,如需激活可通过微软官方购买,另外用户可以通过激活工具在线激活. 更新情况:+更新-万能驱动助理至V6.5+更新-虚拟内存智能转移至D盘+更新-winRAR V5.21+更新-我的文档转移至D盘

最新精品 强势来袭 XP,32/64位Win7,32/64位Win8,32/64位Win10系统【国庆版版】

本系统是10月最新完整版本的Windows10 安装版镜像,Win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为Win10 Edge浏览器中国默认主页和搜索引擎,系统增加了搜狗输入法,安装过程需要用户手动创建个人账户等步骤,为保证系统的稳定性,Win10为未激活版本,如需激活可通过微软官方购买,另外用户可以通过激活工具在线激活. Windows 10对电脑有一些硬件/软件要求,并且功能的可用性可能因设备和市场而异.电脑设备连接到 Internet 并自动启用

新装上线 年度精品 XP,32/64位Win7,32/64位Win10系统【电脑城版】

随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式发布Win10的消息越来越像回事了.Windows 10 Build 10074主要新特性:•用户体验持续改进进一步优化对高DPI显示设备和多显示设备的支持:•Aero Glass特效回归基于众多WindowsInsider项目参与者反馈希望重新看到AeroGlass特效(即半透明效果),微软在10074版中尝试加入

最新精品 强势来袭 XP,32/64位Win7,32/64位Win10系统【电脑城版】

随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式发布Win10的消息越来越像回事了.Windows 10 Build 10074主要新特性:•用户体验持续改进进一步优化对高DPI显示设备和多显示设备的支持:•Aero Glass特效回归基于众多WindowsInsider项目参与者反馈希望重新看到AeroGlass特效(即半透明效果),微软在10074版中尝试加入

2015最新 XP,32/64位Win7,32/64位Win10系统 新装上线【电脑城版】

随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式发布Win10的消息越来越像回事了.Windows 10 Build 10074主要新特性:•用户体验持续改进进一步优化对高DPI显示设备和多显示设备的支持:•Aero Glass特效回归基于众多WindowsInsider项目参与者反馈希望重新看到AeroGlass特效(即半透明效果),微软在10074版中尝试加入

最新精品 强势来袭 XP,32/64位Win7,32/64位Win8,32/64位Win10系统【电脑城版】

本系统是10月最新完整版本的Windows10 安装版镜像,Win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为Win10 Edge浏览器中国默认主页和搜索引擎,系统增加了搜狗输入法,安装过程需要用户手动创建个人账户等步骤,为保证系统的稳定性,Win10为未激活版本,如需激活可通过微软官方购买,另外用户可以通过激活工具在线激活. Windows 10对电脑有一些硬件/软件要求,并且功能的可用性可能因设备和市场而异.电脑设备连接到 Internet 并自动启用

年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统下载

本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎,系统增加了搜狗输入法,安装过程需要用户手动创建个人账户等步骤,为保证系统的稳定性,win10为未激活版本,如需激活可通过微软官方购买,另外用户可以通过激活工具在线激活. 更多系统下载,请到系统妈:http://www.xitongma.com 更新情况:+更新-万能驱动助理至V6.5+更新-虚拟内