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

news/2024/7/3 15:46:15

一、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://lihuaxi.xjx100.cn/news/2051007.html

相关文章

GPT润色指令

1. GPT润色指令 Below is a paragraph from an academic paper. Polish the writing to meet the academic style,improve the spelling, grammar, clarity, concision and overall readability. When necessary, rewrite the whole sentence. Paragraph :你的句子…

9.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-接管游戏连接服务器的操作

内容参考于:易道云信息技术研究院VIP课 上一个内容:游戏底层功能对接类GameProc的实现 码云地址(master 分支):https://gitee.com/dye_your_fingers/titan 码云版本号:44c54d30370d3621c1e9ec3d7fa1e2a0…

服务器被攻击了我们能采取什么措施?

当服务器遭受攻击时,我们可以采取以下方式进行应对: 1. 实时监控:通过实时监控服务器的网络流量、CPU使用率、内存使用率等指标,可以及时发现异常情况并采取相应的措施。 2. 防火墙配置:配置防火墙规则,限…

【EAI 026】RoboGen: 通过自动数据生成管线实现机器人技能学习

Paper Card 论文标题:RoboGen: Towards Unleashing Infinite Data for Automated Robot Learning via Generative Simulation 论文作者:Yufei Wang, Zhou Xian, Feng Chen, Tsun-Hsuan Wang, Yian Wang, Zackory Erickson, David Held, Chuang Gan 作者单…

动态规划之第 N 个泰波那契数/三步问题【leetCode】【算法】

动态规划动态规划之第 N 个泰波那契数/三步问题 动态规划LeetCode题目第 N 个泰波那契数求解1求解2(滚动数组) 三步问题求解1求解2(滚动数组) 动态规划 如果问题是由重叠的子问题构成的,那就可以用动态规划&#xff08…

Python 中生成多种有规律的数字序列

在 Python 编程中,生成数字序列是一项常见且重要的任务。Python 提供了多种方法来生成具有不同规律的数字序列,例如等差数列、等比数列、斐波那契数列等。本文将深入探讨如何使用 Python 中的内置函数、列表推导式、生成器等方式来生成多种有规律的数字序…

主流Golang框架对比以及介绍

一.Gin框架 Gin是Golang社区非常受欢迎的一个轻量级框架,它具有简洁易用的特点,并且拥有很好的性能和可扩展性.Gin采用类似MVC的架构,支持中间件、路由、模板渲染等功能,同时也提供了一些强大的插件和工具,例如Swagger、CORS等,还…

云端技术驾驭DAY12——Pod调度策略、Pod标签管理、Pod资源配额与限额、全局资源配额与限额策略

往期回顾: 云端技术驾驭DAY01——云计算底层技术奥秘、云服务器磁盘技术、虚拟化管理、公有云概述 云端技术驾驭DAY02——华为云管理、云主机管理、跳板机配置、制作私有镜像模板 云端技术驾驭DAY03——云主机网站部署、web集群部署、Elasticsearch安装 云端技术驾驭…