pcl提供的Allinone安装工具是不含CUDA的,需要的话就要自己编译源码。
我记录一下自己编译时遇到的问题,希望可以帮到大家。
环境
首先说一下我的环境,这一套搭配是没有问题的。
GeForce 940M
CUDA10.1
VS2017
PCL1.9.1
遇到的问题
1. 在cmake的界面要将Advanced勾选上,要不然找不到Boost的相关属性。
然后把带有CUDA和gpu的项都勾选上。
2. CUDA ARCH BIN
这一项在点击configure后是会有很多值的,这里不处理的话后续会报错。我们只保留和自己机器的显卡的计算能力相匹配的值。计算能力可以在这里查询。
3. namespace “thrust” has no member “device_malloc
点击ALL_BUILD生成后,最后会有"thrust” has no member "device_malloc这么一个问题。
device_malloc位于device_malloc.h中。
根据提示找到目标文件的位置: …\pcl-1.9.1\cuda\common\include\pcl\cuda\point_cloud.h。给这个.h文件加个头文件:#include <thrust/device_malloc.h>
之后就没有错误了。
相同的配置下也有可能报其他的问题,欢迎大家一起交流学习。