问题描述:
在Ubuntu系统编译安装openpose项目的时候,用到cmake-gui工具。
cmake检测到cuda版本为7.5,是我曾经安装过但已经卸载的版本。目前安装的是cuda9.0,利用nvcc -V命令检验得到的版本号也是cuda9.0。
原因:
推测问题原因应该是旧版本cuda未卸载干净。
曾经安装caffe的过程中,也因为旧版本的cuda库未卸载完全踩过坑:https://blog.csdn.net/CYummy/article/details/82789355
解决:
1、通过关键字搜索,卸载了/usr文件夹下几乎所有带有“7.5”的cuda相关文件,问题依旧未解决。
2、进入到/usr/local,也就是cuda的安装目录下,输入命令:stat cuda 确认cuda软连接连接到正确版本9.0,然而问题依旧未解决。
3、参考https://zhuanlan.zhihu.com/p/48641682 第6条
进入/usr/bin/nvcc,而实际上nvcc是应该在/usr/local/cuda/bin/nvcc。
所以,sudo gedit /usr/bin/nvcc,把里面的内容"exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc" 改成"exc /usr/local/cuda/bin/nvcc"
问题解决,cmake 检测到9.0版本的cuda!
疑问:
尽管问题“解决”了,但是对具体原理仍存许多疑惑。
比如在修改nvcc之前,输入nvcc -V指令,得到的是正确版本的cuda9.0,但是cmake就检测不到。
唔,就很奇怪,先记录下,等以后明白个中缘由再来填坑。
也请走过路过了解问题原因的小伙伴不吝赐教~