VS2015+windows10编译配置Ceres库

2023-10-20 19:59

本文主要是介绍VS2015+windows10编译配置Ceres库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、准备工作:软件下载
  • 二、实现过程
  • 三、实现效果
  • 参考资料

一、准备工作:软件下载

1、cmake:是一种跨平台的编译工具,它可以应用于Windows、Linux等系统
2、VS2015:这就不用怎么介绍了,使用很广泛的一个软件。
3、Eigen:一个矩阵库,Ceres官方建议下载3.3版本及之上的Eigen包。
4、glog:在Ceres中,glog被广泛用于记录关于内存分配、解决过程中不同部分所消耗的时间、内部错误情况等详细信息。
5、gflags:一套命令行参数解析工具,比getopt功能更强大,使用起来更加方便,gflags还支持从环境变量、配置文件读取参数,通常需要依赖于glog。
6、Ceres:一个开源的c++库,用于建模和解决大型、复杂的优化问题。它可用于求解有界约束的非线性最小二乘问题和一般的无约束优化问题。它是一个成熟的、功能丰富的和性能良好的库,自2010年以来一直在谷歌上用于生产。由于这里我使用的是VS2015,所以Ceres版本选择了V1.14.0;若是VS2019或VS2022,可以下载最新的版本。
上述的相关包的源代码均可以在GitHub中进行下载。

注:由于以前SuiteSparse在Windows上是不可用的,所以VS2015并不需要编译SuiteSparse库,最近该库已经支持了Windows系统,不过只有VS2019和VS2022支持对该库的调用。

二、实现过程

其中的Eigen、glog以及gflags库,均是正常的cmake操作,指定源目录和构建目录,点击configure和generate即可。之后在各个项目中进行编译、安装。

在上述的库全部都编译安装好了之后,就可以编译Ceres了,如下所示:

1、指定源目录和构建目录。

在这里插入图片描述

2、对CMake进行如下设置。

在这里插入图片描述

Eigen_Dir也需要指定相关的路径"_"。

在这里插入图片描述

在这里插入图片描述

这里修改一下Ceres的安装路径,方便后续的使用。

在这里插入图片描述

3、之后点击configure与generate生成VS项目。
4、对Ceres进行编译与安装。

在这里插入图片描述

在这里插入图片描述

最终的效果:

在这里插入图片描述

5、最后,添加相关的环境变量,方便后面程序的调用。

在这里插入图片描述

三、实现效果

添加一个Ceres示例:

#include<iostream>
#include<ceres/ceres.h>using namespace std;
using namespace ceres;struct CostFunctor {template <typename T>bool operator()(const T* const x, T* residual) const {residual[0] = 10.0 - x[0];return true;}
};int main(int argc, char** argv) {google::InitGoogleLogging(argv[0]);// The variable to solve for with its initial value.double initial_x = 5.0;double x = initial_x;// Build the problem.Problem problem;// Set up the only cost function (also known as residual). This uses// auto-differentiation to obtain the derivative (jacobian).CostFunction* cost_function =new AutoDiffCostFunction<CostFunctor, 1, 1>(new CostFunctor);problem.AddResidualBlock(cost_function, nullptr, &x);// Run the solver!Solver::Options options;options.linear_solver_type = ceres::DENSE_QR;options.minimizer_progress_to_stdout = true;Solver::Summary summary;Solve(options, &problem, &summary);std::cout << summary.BriefReport() << "\n";std::cout << "x : " << initial_x<< " -> " << x << "\n";system("pause");return 0;
}

在这里插入图片描述

参考资料

[1]http://www.javashuo.com/article/p-hgyfkjkj-nw.html

这篇关于VS2015+windows10编译配置Ceres库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/249397

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,