ubuntu上 cmake时发现cuda的版本不匹配

一、问题

重装了一次系统,但是原来的一些软件可能没有卸载干净,比如以前安装的是cuda8.0+opencv3.4.1,新装的是cuda9.0+opencv3.4.1,这里不介绍opencv3.4.1,只讲cmake遇到的一些问题

cmake链接opencv时,在这一步遇到Could NOT find CUDA: Found unsuitable version “8.0”, but required is exact version “9.0” (found /usr/local/cuda)

find_package(OpenCV REQUIRED)

应该是系统还是认为是cuda8.0,但其实我已经装的是9.0的版本, 在终端 nvcc-V的时候也是9.0版本,而且我移除了所有8.0的文件夹,但还是cmake发现不了 cuda-9.0.

opencv重装,环境变量设置等等等等但仍然解决不了.

二、解决办法

以下查阅资料所得:
博主解决办法:
先cd到当前文件夹

mkdir build
cd build
# cmake .. 一般会这样,但没有这样
cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.0 .. #ok编译成功,需要指定一下cuda路径

三、原理

原理转自 http://www.it1352.com/344521.html:

cmake的提到 CUDA_TOOLKIT_ROOT_DIR 作为CMake的变量,而不是环境之一。这就是为什么当你把它变成的.bashrc不工作。如果你看看FindCUDA.cmake它清楚地说:
该脚本会提示用户指定CUDA_TOOLKIT_ROOT_DIR如果preFIX
不能NVCC的位置,在系统路径和要求的确定
被指定到find_package()。要使用的不同的安装版本
工具箱设置环境变量CUDA_BIN_PATH运行cmake的前
(例如CUDA_BIN_PATH =的/ usr /本地/ cuda1.0而不是默认的/ usr /本地/ CUDA)
或配置之后设置CUDA_TOOLKIT_ROOT_DIR。如果更改的值
CUDA_TOOLKIT_ROOT_DIR,依赖路径上的各种组件将
搬迁。

所以把 CUDA_BIN_PATH 到.bashrc或者指定 CUDA_TOOLKIT_ROOT_DIR 来cmake的:
http://www.it1352.com/344521.html

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值