CMake Error at myplugins_generated_yololayer.cu.o.Debug,tensorrtx编译失败解决

system :ubuntu1804
gpu: 3060
cuda:cuda11.4
tensorrt:8.4

使用项目tensorrtx 进行yolov5的engine生成, 之前在编译成功的配置为

system :ubuntu1804
gpu: 2060
cuda:cuda10.2
tensorrt:7.2.3.4

换到3060后,make失败,报错
错误:

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(175): error: object of abstract class type "nvinfer1::YoloLayerPlugin" is not allowed:
            pure virtual function "nvinfer1::IPluginV2::enqueue" has no overrider

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(258): error: allowing all exceptions is incompatible with previous function "nvinfer1::YoloLayerPlugin::enqueue"
/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.h(54): here

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(319): error: object of abstract class type "nvinfer1::YoloLayerPlugin" is not allowed:
            pure virtual function "nvinfer1::IPluginV2::enqueue" has no overrider

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(328): error: object of abstract class type "nvinfer1::YoloLayerPlugin" is not allowed:
            pure virtual function "nvinfer1::IPluginV2::enqueue" has no overrider

32 errors detected in the compilation of "/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu".
CMake Error at myplugins_generated_yololayer.cu.o.Debug.cmake:280 (message):
  Error generating file
  /home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o

参考这个issue,将每个报错的函数加了noexcept,再次编译,报错

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.h(54): error: member function declared with "override" does not override a base class member

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.h(54): warning: function "nvinfer1::IPluginV2::enqueue(int32_t, const void *const *, void *const *, void *, cudaStream_t)" is hidden by "nvinfer1::YoloLayerPlugin::enqueue" -- virtual function override intended?

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.h(85): warning: function "nvinfer1::IPluginV2Ext::configurePlugin(const nvinfer1::Dims *, int32_t, const nvinfer1::Dims *, int32_t, const nvinfer1::DataType *, const nvinfer1::DataType *, const __nv_bool *, const __nv_bool *, nvinfer1::PluginFormat, int32_t)" is hidden by "nvinfer1::YoloLayerPlugin::configurePlugin" -- virtual function override intended?

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(175): error: object of abstract class type "nvinfer1::YoloLayerPlugin" is not allowed:
            pure virtual function "nvinfer1::IPluginV2::enqueue" has no overrider

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(319): error: object of abstract class type "nvinfer1::YoloLayerPlugin" is not allowed:
            pure virtual function "nvinfer1::IPluginV2::enqueue" has no overrider

/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu(328): error: object of abstract class type "nvinfer1::YoloLayerPlugin" is not allowed:
            pure virtual function "nvinfer1::IPluginV2::enqueue" has no overrider

4 errors detected in the compilation of "/home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/yololayer.cu".
CMake Error at myplugins_generated_yololayer.cu.o.Debug.cmake:280 (message):
  Error generating file
  /home/yfzx/work/vs-work/tensorrt-yolov5-4.0/yolov5/build/CMakeFiles/myplugins.dir//./myplugins_generated_yololayer.cu.o

参考这个issue,发现有个commit,支持tensorrt8

clone最新的后,查看gitlog,发现这个commit
CMake Error at myplugins_generated_yololayer.cu.o.Debug,tensorrtx编译失败解决_第1张图片
文件修改变化
可以替换,或者 直接切换到这个分支,再次编译,成功!

你可能感兴趣的:(BUG,人工智能)