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

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads