nvcc fatal : Unsupported gpu architecture ‘compute_20‘ CMake Error at pcl_gpu_utils_generated_repack

因为在安装pcl1 .8前安装了cuda9.0后出现了以下报错。(之前用另外一台没有cuda的环境下安装可以编译通过)

主要错误摘录:

nvcc fatal : Unsupported gpu architecture ‘compute_20’ CMake Error at pcl_gpu_utils_generated_repacks.cu.o.cmake:209 (message): Error generating
Unsupported gpu architecture ‘compute_20’ CMake Error at pcl_gpu_utils_generated_repacks.cu.o.cmake:209 (message): Error generating

错误截图:
nvcc fatal : Unsupported gpu architecture ‘compute_20‘ CMake Error at pcl_gpu_utils_generated_repack_第1张图片

通过搜索可以大致确定是cuda9.0安装后导致的。

方法1:

因为找了很多方案都没有成功,这也是歪打正着。
注意:因为我不打算在pcl中用cuda(主要用于GPU函数计算提速),所以我用了这种方法

解决方案:
This is probably the reason for the build environment, gcc++ and nvcc do not open c++11 by default, you can add “add_definitions(-std=c++11) set(CUDA_NVCC_FLAGS “-std=c++11”)” in CMakeLists.txt.(/home/…/pcl-1.9.1/CMakeLists.txt)
I have tried this way and solved those bottlenecks successfully.

https://github.com/PointCloudLibrary/pcl/issues/2541

其实我参照了上面的方案都没有成功,于是选择了在CmakeLists.txt程序关于cuda的代码将其注释掉(删除掉)

nvcc fatal : Unsupported gpu architecture ‘compute_20‘ CMake Error at pcl_gpu_utils_generated_repack_第2张图片
本来只是抱着试一试的态度,居然成功了,当然除了这里我删除掉了,我换在CmakeLists.txt上加了这两句话:

add_definitions(-std=c++11) 
set(CUDA_NVCC_FLAGS "-std=c++11")

因为前面只是修改这还是编译失败,不过也没删除,就留着了。第一句话主要是选择C++11的编译方式。

nvcc fatal : Unsupported gpu architecture ‘compute_20‘ CMake Error at pcl_gpu_utils_generated_repack_第3张图片
成功了 不用再重装环境了,开心?

方法2:

师兄说他当时也遇到过,它当时将PCL版本换成1.9后成功了,我没有尝试,因为害怕两个版本的库函数发生变化,导致之前程序报错,所以没有尝试这种方法。

你可能感兴趣的:(填坑,PCL,新手上路)