安装mmdet3d低版本的时候,使用高的torch版本会导致THC.H文件中找不到报错,解决方案有两个:
- 降低toch版本,torch从1.7.0版本开始就不再支持使"THC/THC.h"头文件了。
// 替换为下面两个.h文件。同时,注释掉extern THCState *state; 就可以成功编译
#include <ATen/cuda/CUDAContext.h>
#include <ATen/cuda/CUDAEvent.h>
// extern THCState *state;
针对mmdet3d,则修改mmdetection3d/mmdet3d/ops路径下的.cpp文件(可以通过报错定位查找)
- ball_query.cpp
- knn.cpp
- grounp.points.cpp
- interpolate.cpp
- furthest_point_sample.cpp
- gather_points.cpp