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

文件修改变化
可以替换,或者 直接切换到这个分支,再次编译,成功!
更多推荐
所有评论(0)