NVIDIA\CUDA\cudnn安装以及visual studio2022编译安装ceres2.2.0库

一、NVIDIA驱动安装

网址:官方驱动 | NVIDIA

因为本文之后需要visual studio2022进行编译,所以在安装NVIDIA\CUDA\cudnn之前你先得安装visual studio2022

点击NVIDIA控制面板,NVIDIA Control Panel

查看产品家族  

根据产品家族选择驱动,点击搜索

点击下载 

下载之后双击安装,一直下一步就行了,不要随便改变安装路径

二、CUDA安装

网址:CUDA Toolkit Archive | NVIDIA Developer

根据系统信息找到适合自己的CUDA版本 

 

安装的时候确保这个也勾上

win+r打开cmd输入【nvcc -V】查看,如下图表示安装成功! 

三、 cudnn安装

网址:cuDNN Archive | NVIDIA Developer

需要注册英伟达的开发者账号才能下载。一定要注意,cuDNN的版本和CUDA的版本是需要对应的,不然不能用,我是12.3的,所以选择8.9.7版本

下载之后解压 

把这些文件夹全部复制,粘贴到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3路径下,替换掉该路径下的同名文件,我的CUDA版本为12.3,所以路径的最后是\v12.3,你的版本不一样,这个就会不一样。

到此,NVIDIA\CUDA\cudnn安装完成。

如果你和我是同版本的NVIDIA\CUDA\cudnn,我这里有下载好的

链接:https://pan.baidu.com/s/186kNYlTzDlB0fj-M1XQ-rw 
提取码:wstc 

四、visual studio2022编译安装ceres2.2.0库

1、下载链接:

Eigen:Eigen

ceres-solver:GitHub - ceres-solver/ceres-solver at 2.2.0

gflags:https://github.com/gflags/gflags/tree/v2.2.2

glog:GitHub - google/glog at v0.6.0

suitesparse-metis-for-windows:Release Release of 1.3.1 · jlblancoc/suitesparse-metis-for-windows · GitHub

cmake:cmake官网 

我这里有下载好的:

Ceres-solver、gflags、Eigen、glog、suitesparse、cmake资源-CSDN文库

2、cmake编译

首先安装cmake,安装路径自己选。

找个地方新建文件夹Ceres,之后的编译都在这个文件夹内进行,在该文件夹下面建立Build、Library、Cinclude、CLib、Cdill、source;接着在Build里面建立Eigen_build、Ceres_build、Gflags_build、Glog_build、Suitesparse_build,这些文件夹都是编译位置;在Library里面建立Eigen_lib、Ceres_lib、Gflags_lib、Glog_lib、Suitesparse_lib这些文件夹都是库文件生成位置,最后把源码都解压到source文件夹里。

2.1、gflags编译

打开cmake,找到gflags的源码位置和编译位置

点击configure,写上x64,点击Finish

configure结束之后

 配置,蓝色标注的是修改好的

 

点击Generate,然后点击Open_Project ,打开visual studio2022,点击生成,找到批生成

把ALL_BUILD的Debug|x64和Release|x64以及INSTALL的Debug|x64和Release|x64给点上,最后点击生成,生成结束之后C:\Compiler\ceres\Library\Gflags_lib会有这些文件

 2.2、glog编译

打开cmake,找到glog的源码位置和编译位置

点击configure,写上x64,点击Finish,configure结束之后

 配置,蓝色标注的是修改好的

点击Generate,然后点击Open_Project ,打开visual studio2022,点击生成,找到批生成, 把ALL_BUILD的Debug|x64和Release|x64以及INSTALL的Debug|x64和Release|x64给点上,最后点击生成,生成结束之后C:\Compiler\ceres\Library\Glog_lib会有这些文件

2.3、Eigen编译 

打开cmake,找到gflags的源码位置和编译位置

 点击configure,写上x64,点击Finish,configure结束,这里修改比较容易

 配置,蓝色标注的是修改好的

点击Generate,然后点击Open_Project ,打开visual studio2022,点击生成,找到批生成, 把ALL_BUILD的Debug|x64和Release|x64以及INSTALL的Debug|x64和Release|x64给点上,最后点击生成,生成结束之后C:\Compiler\ceres\Library\Eigen_lib会有这些文件

2.4、suitesparse编译  

打开cmake,找到glog的源码位置和编译位置

 点击configure,写上x64,点击Finish,configure结束 

  配置,蓝色标注的是修改好的

点击Generate,然后点击Open_Project ,打开visual studio2022,点击生成,找到批生成, 把ALL_BUILD的Debug|x64和Release|x64以及INSTALL的Debug|x64和Release|x64给点上,最后点击生成,这只是生成了suitesparse静态库。

接下来要生成动态库

配置,蓝色标注的是修改好的

点击Generate,然后点击Open_Project ,打开visual studio2022,点击生成,找到批生成, 把ALL_BUILD的Debug|x64和Release|x64以及INSTALL的Debug|x64和Release|x64给点上,最后点击生成,这只是生成了suitesparse动态库。 生成结束之后C:\Compiler\ceres\Library\suitesparse_lib会有这些文件

2.5、ceres编译

打开cmake,找到glog的源码位置和编译位置

在configure之前要通过Add Entry增加一些配置:

BLAS_LIBRARIES(FILEPATH):C:\Compiler\ceres\Library\suitesparse_lib\lib64\lapack_blas_windows\libblas.lib

LAPACK_LIBRARIES(FILEPATH):C:\Compiler\ceres\Library\suitesparse_lib\lib64\lapack_blas_windows\liblapack.lib

GLOG(BOOL):选中打勾

SUITESPARSE_CHECK_INCLUDE_DIRS(PATH):C:\Compiler\ceres\Library\suitesparse_lib\include

SUITESPARSE_CHECK_LIBRARY_DIRS(PATH):C:\Compiler\ceres\Library\suitesparse_lib\lib64

Eigen3_DIR(PATH):C:\Compiler\ceres\Library\Eigen_lib\share\eigen3\cmake

gflags_DIR(PATH):C:\Compiler\ceres\Library\Gflags_lib\lib\cmake\gflags

glog_DIR(PATH):C:\Compiler\ceres\Library\Glog_lib\lib\cmake\glog

 点击configure,写上x64,点击Finish,configure结束 

配置,蓝色标注的是修改好的

点击Generate,然后点击Open_Project ,打开visual studio2022,点击生成,找到批生成, 把ALL_BUILD的Debug|x64和Release|x64以及INSTALL的Debug|x64和Release|x64给点上,最后点击生成,生成结束之后C:\Compiler\ceres\Library\Ceres_lib会有这些文件 

2.6、整合 

把C:\Compiler\ceres\Library\Ceres_lib\include的ceres文件夹、C:\Compiler\ceres\Library\Eigen_lib\include\eigen3的Eigen、unsupported文件夹、C:\Compiler\ceres\Library\Gflags_lib\include的gflags文件夹、C:\Compiler\ceres\Library\Glog_lib\include的glog的文件夹、C:\Compiler\ceres\Library\suitesparse_lib\include的suitesparse的文件夹放到C:\Compiler\ceres\Cinclude文件夹里面

把C:\Compiler\ceres\Library\Ceres_lib\lib的以.lib结尾的文件、C:\Compiler\ceres\Library\Gflags_lib\lib的以.lib结尾的文件、C:\Compiler\ceres\Library\Glog_lib\lib的以.lib结尾的文件、C:\Compiler\ceres\Library\suitesparse_lib\lib64的以.lib结尾的文件和lapack_blas_windows文件夹放到C:\Compiler\ceres\CLib文件夹里面

把C:\Compiler\ceres\Library\Ceres_lib\bin的以.dll结尾的文件、C:\Compiler\ceres\Library\Gflags_lib\bin的以.dll结尾的文件、C:\Compiler\ceres\Library\Glog_lib\bin的以.dll结尾的文件、C:\Compiler\ceres\Library\suitesparse_lib\bin的以.dll结尾的文件以及C:\Compiler\ceres\Library\suitesparse_lib\lib64\lapack_blas_windows的以.dll结尾的文件放到C:\Compiler\ceres\Cdll文件夹里面

最后把C:\Compiler\ceres\Cdll加入到你的电脑的环境变量,电脑重启。

2.6、测试

新建一个visual studio2022项目,把C:\Compiler\ceres\Cinclude写入包含目录里,C:\Compiler\ceres\CLib库目录里,附加依赖项ceres.lib、glog.lib、gflags_nothreads.lib(Release版本),glogd.lib、ceres-debug.lib、gflags_nothreads_debug.lib(Debug版本),预处理器定义增加GLOG_NO_ABBREVIATED_SEVERITIES、_CRT_NONSTDC_NO_DEPRECATE这两个,常规里面的C++语言标准、C语言标准都改成17版本。

借用C:\Compiler\ceres\source\ceres-solver-2.2.0\examples里面的helloworld.cc进行运行

结果

已经编译好的文件: visualstudio2022已经编译好的ceres库资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[算法沉淀记录] 排序算法 —— 选择排序

排序算法 —— 选择排序 基本概念 选择排序是一种简单的排序算法,它的工作原理是每次从待排序的列表中选择最小(或最大)的元素,将其与列表中的第一个位置交换,然后继续对剩余的元素进行排序,直到整个列表…

基于Java SSM框架实现家庭食谱管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现家庭食谱管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个家庭食谱管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论…

【Git】window下大小写不敏感问题处理

在Windows环境下,Git因为文件名的大小写敏感性而导致了一些问题。 首先,Windows文件系统是不区分大小写的,这意味着在Windows中创建的两个文件名只有大小写不同,但字母顺序和字符完全相同的文件会被视为相同的文件。然而&#xf…

省内顺丰寄一台电脑多少钱,顺丰不会乱丢包裹

省内用顺丰快递寄电脑要多少钱? 使用顺丰速运。 顺丰快递不会乱扔包裹。 根据地区不同,邮费预计在120至150元左右。 有些地方顺丰不允许寄电脑,因为电脑特别容易损坏。 一般来说,您需要自己做。 有的顺丰还帮忙在电脑主机的外箱上…

喜报|迪捷软件入选工信部“2023年信息技术应用创新解决方案”

为进一步推进信创生态建设,激发产业自主创新活力,高效促进供需协同发展,加强区域联动和资源整合,国家工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)联合相关单位,遴选了一批可复…

2024年江苏事业单位招聘报名指南

江苏事业单位目前已出的公告中&#xff0c;扬州和常州的报名时间相对较早&#xff0c;2月27日就开始报名了&#xff1b;其他大多在2月28日或3月1日起开始报名。 报名请移步<江苏人事考试网> 【报名时间】 2月28日9:00-3月4日16:00#图文万粉激励计划# 【资格初审】2月28…

招聘系统架构的设计与实现

在当今竞争激烈的人才市场中&#xff0c;有效的招聘系统对企业吸引、筛选和管理人才至关重要。本文将探讨招聘系统的架构设计与实现&#xff0c;帮助企业构建一个高效、可靠的人才招聘平台。 ## 1. 系统架构设计 ### 1.1 微服务架构 招聘系统通常采用微服务架构&#xff0c;将…

提高办公效率:Excel在文秘与行政办公中的应用技巧

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在当今信息化时代&#xff0c;Excel作为一款常…

C# 经典:ref 和 out 的区别详解

在C#中&#xff0c;ref和out关键字用于按引用传递变量&#xff0c;它们在变量传递、输出参数、返回值以及异常处理等方面有一些重要区别。本文将详细阐述这些差异。 1. 变量传递 ref和out关键字都可以用于方法的参数传递。它们的主要区别在于如何处理变量的引用。 ref关键字…

wordpress模板购买网站推荐

简站wordpress主题 老牌wordpress开发团队&#xff0c;开发过数百款wordpress主题&#xff0c;作品是最好的简历&#xff0c;靠作品说话&#xff0c;看作品喜欢不喜欢就可以了。 https://www.jianzhanpress.com WP模板牛 免费wordpress下载网站&#xff0c;上面有上百款免费…

大学课本电子版下载

原文&#xff1a;https://www.zhihu.com/question/356005353

一款.NET下 WPF UI框架介绍

WPF开源的UI框架有很多,如HandyControl、MahApps.Metro、Xceed Extended WPF Toolkit™、Modern UI for WPF (MUI)、Layui-WPF、MaterialDesignInXamlToolkit、等等,今天小编带大家认识一款比较常用的kaiyuanUI---WPF UI,这款ui框架美观现代化,用起来也超级方便, 界面展示…

No matching version found for get-symbol-description@^1.0.2前端项目报错解决(亲测可用)

目录 一、问题详情 二、解决方案 一、问题详情 拉取一个新的项目的时候&#xff0c;前端进行install依赖的时候&#xff0c;报了如下的错误。 6120 verbose node v16.15.1 6121 verbose npm v8.11.0 6122 error code ETARGET 6123 error notarget No matching version foun…

UE5渲染视频教程推荐

学习视频 虚幻引擎5&#xff01;如何导出为 MP4 和 MOV 视频文件&#xff01;_哔哩哔哩_bilibili UE4小教程&#xff1a;如何录制游戏过程动画并渲染_哔哩哔哩_bilibili 要点 1.record type要设置 2.ffmpeg下载安装配置

2024年1月京东洗衣机行业数据分析:TOP10品牌销量销额排行榜

鲸参谋监测的京东平台1月份洗衣机市场销售数据已出炉&#xff01; 根据鲸参谋电商数据分析平台显示&#xff0c;今年1月份&#xff0c;京东平台上洗衣机的销量约160万件&#xff0c;环比上个月增长约42%&#xff0c;同比去年下滑7%&#xff1b;销售额约28亿元&#xff0c;环比…

Vue-2

生命周期 Vue 生命周期 Vue 生命周期函数 Vue 生命周期过程中&#xff0c;会自动运行一些函数&#xff0c;被称为"生命周期钩子"&#xff0c;让开发者可以在特定阶段运行自己的代码 created 应用演示 <body><div class"box"><ul v-for&q…

Java设计模式——模板方法模式

当你在设计一个业务功能时&#xff0c;有一些方法/算法的结构是固定的&#xff0c;但其中的某些步骤可能会因不同的情境而发生不同的变化。你希望固定核心结构部分&#xff0c;然后灵活的去定制一些特定的步骤。这个时候可以考虑使用模板方法&#xff0c;通过定义一个抽象的父类…

景联文科技:引领战场数据标注服务,赋能态势感知升级

自21世纪初&#xff0c;信息化战争使战场环境变得更为复杂和难以预测&#xff0c;持续涌入的海量、多样化、多来源和高维度数据&#xff0c;加大了指挥员的认知负担&#xff0c;使其需要具备更强的数据处理能力。 同时&#xff0c;计算机技术和人工智能技术的飞速发展&#xff…

【算法训练营】:周测5

需要详细的实现代码实现请私信博主 考题10-5 题目描述 平面固定有一些全等的圆角矩形&#xff0c;不同的圆角矩形具有不同的位置和倾斜角。这些圆角矩形都通过将以原本四个直角处距离两条直角边均为 r&#xfffd; 的位置为圆心&#xff0c;半径为 r&#xfffd; 且与两条直…

JAVA线程 启动线程 理解中断

启动线程 线程对象在初始化完成之后&#xff0c;调用start()方法就可以启动这个线程。线程start()方法的含义是&#xff1a;当前线程&#xff08;即parent线程&#xff09;同步告知Java虚拟机&#xff0c;只要线程规划器空闲&#xff0c;应立即启动调用start()方法的线程。 注…