solov2_trt工具链编译安装问题
按照教程安装了opencv4.5.3, tensorRT7.2.3.4以及thor.
cmake已经通过
-- TensorRT Header => /home/yangjb/TensorRT/include -- TensorRT Lib => /home/yangjb/TensorRT/lib -- Project Lib => /home/yangjb/work/DL/strangeAI/solov2_trt/lib -- Project source => /home/yangjb/work/DL/strangeAI/solov2_trt/src -- Found CUDA: /usr/local/cuda-10.0 (found suitable exact version "10.0") WARING Can not find opencv lib. It will use the default path => /usr/local/lib -- OpenCV_INCLUDE_DIRS => /usr/local/include/opencv4 -- OpenCV_LIBRARY_DIRS => /usr/local/lib -- OpenCV_LIBS => opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio;opencv_alphamat;opencv_aruco;opencv_barcode;opencv_bgsegm;opencv_bioinspired;opencv_ccalib;opencv_cudaarithm;opencv_cudabgsegm;opencv_cudacodec;opencv_cudafilters;opencv_cudaimgproc;opencv_cudalegacy;opencv_cudaobjdetect;opencv_cudaoptflow;opencv_cudawarping;opencv_cudev;opencv_datasets;opencv_dnn_objdetect;opencv_dnn_superres;opencv_dpm;opencv_face;opencv_freetype;opencv_fuzzy;opencv_hdf;opencv_hfs;opencv_img_hash;opencv_intensity_transform;opencv_line_descriptor;opencv_mcc;opencv_optflow;opencv_phase_unwrapping;opencv_plot;opencv_quality;opencv_rapid;opencv_reg;opencv_rgbd;opencv_saliency;opencv_shape;opencv_structured_light;opencv_superres;opencv_surface_matching;opencv_text;opencv_videostab;opencv_wechat_qrcode;opencv_xfeatures2d;opencv_ximgproc;opencv_xobjdetect;opencv_xphoto -- Found CUDA: /usr/local/cuda-10.0 (found version "10.0") WARING Can not find CUDA lib. It will use the default path => /usr/local/cuda/lib64 -- CUDA_INCLUDE_DIRS : /usr/local/cuda-10.0/include -- CUDA_LIBRARY_DIRS : /usr/local/cuda/lib64 -- Configuring done -- Generating done -- Build files have been written to: /home/yangjb/work/DL/strangeAI/solov2_trt/build
make 报错
In file included from /home/yangjb/work/DL/strangeAI/solov2_trt/include/buffers.h:40:0,
from /home/yangjb/work/DL/strangeAI/solov2_trt/include/tensorrt_wrapper.h:42,
from /home/yangjb/work/DL/strangeAI/solov2_trt/src/tensorrt_wrapper.cc:28:
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:164:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<!std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:164:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<!std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:170:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:170:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:171:20: error: redefinition of ‘template<class T,
static inline void CudaMemcpy(T *dest, const T *src, size_t size,
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:165:20: note: ‘template<class T,
static inline void CudaMemcpy(T *dest, const T *src, size_t size,
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:191:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<!std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:191:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<!std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:199:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:199:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:200:20: error: redefinition of ‘template<class T,
static inline void CudaMemcpy(T *dest, const T *src, size_t size,
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:192:20: note: ‘template<class T,
static inline void CudaMemcpy(T *dest, const T *src, size_t size,
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:223:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<!std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:223:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<!std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:229:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:229:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:230:20: error: redefinition of ‘template<class T,
static inline void CudaMemset(T *dest, int value, size_t size,
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:224:20: note: ‘template<class T,
static inline void CudaMemset(T *dest, int value, size_t size,
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:235:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<!std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:235:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<!std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:240:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:240:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:241:20: error: redefinition of ‘template<class T,
static inline void CudaMemset(T *dest, int value, size_t size) {
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:236:20: note: ‘template<class T,
static inline void CudaMemset(T *dest, int value, size_t size) {
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:246:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<!std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:246:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<!std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:252:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:252:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:253:20: error: redefinition of ‘template<class T,
static inline void CudaMalloc(T **dest, size_t size) {
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:247:20: note: ‘template<class T,
static inline void CudaMalloc(T **dest, size_t size) {
^~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:261:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<!std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:261:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<!std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:267:28: error: ‘std::enable_if_t’ has not been declared
template <typename T, std::enable_if_t<std::is_void
^~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:267:39: error: expected ‘>’ before ‘<’ token
template <typename T, std::enable_if_t<std::is_void
^
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:268:20: error: redefinition of ‘template<class T,
static inline void CudaHostRegister(T *dest, size_t size) {
^~~~~~~~~~~~~~~~
/home/yangjb/work/DL/strangeAI/solov2_trt/include/cuda_common.h:262:20: note: ‘template<class T,
static inline void CudaHostRegister(T *dest, size_t size) {
^~~~~~~~~~~~~~~~
In file included from /home/yangjb/work/DL/strangeAI/solov2_trt/include/tensorrt_wrapper.h:42:0,
from /home/yangjb/work/DL/strangeAI/solov2_trt/src/tensorrt_wrapper.cc:28:
/home/yangjb/work/DL/strangeAI/solov2_trt/include/buffers.h: In member function ‘void trtonnx2::BufferManager::freeCudaBuffers()’:
/home/yangjb/work/DL/strangeAI/solov2_trt/include/buffers.h:222:52: warning: deleting ‘void*’ is undefined [-Wdelete-incomplete]
delete mManagedBuffers[i]->deviceBuffer.data();
^
CMakeFiles/solov2_trt.dir/build.make:1668: recipe for target 'CMakeFiles/solov2_trt.dir/src/tensorrt_wrapper.cc.o' failed
make[2]: *** [CMakeFiles/solov2_trt.dir/src/tensorrt_wrapper.cc.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/solov2_trt.dir/all' failed
make[1]: *** [CMakeFiles/solov2_trt.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
环境配置:
- ubuntu18.04
- gcc 7.5.0
- NVIDIA-SMI 450.102.04 Driver Version: 450.102.04
- cuda10.0
- opencv4.5.3