opencv_contrib
opencv_contrib copied to clipboard
Ubuntu 18.04 make -j4 时,报错
cmake -DOPENCV_EXTRA_MODULES_PATH=/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules ..
sudo make -j4
Scanning dependencies of target opencv_imgproc
[ 22%] Building CXX object modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/accum.cpp.o
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:22:48: error: ‘VTraits’ was not declared in this scope
const uint32_t v_float32_max_width = (uint32_t)VTraits<v_float32>::max_nlanes;
^~~~~~~
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:22:65: error: expected primary-expression before ‘>’ token
const uint32_t v_float32_max_width = (uint32_t)VTraits<v_float32>::max_nlanes;
^
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:22:68: error: ‘::max_nlanes’ has not been declared
const uint32_t v_float32_max_width = (uint32_t)VTraits<v_float32>::max_nlanes;
^~~~~~~~~~
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:22:68: note: suggested alternative: ‘max_align_t’
const uint32_t v_float32_max_width = (uint32_t)VTraits<v_float32>::max_nlanes;
^~~~~~~~~~
max_align_t
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp: In function ‘cv::hal_baseline::simd128_cpp::v_float32 cv::signal::simd_cubicHermite(const v_float32&, const v_float32&, const v_float32&, const v_float32&, const v_float32&)’:
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:98:25: error: ‘v_sub’ was not declared in this scope
v_float32 v_inv_A = v_sub(v_zero, v_A);
^~~~~
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:100:53: error: ‘v_add’ was not declared in this scope
v_float32 v_a = v_mul(v_sub(v_fma(v_three, v_B, v_add(v_inv_A, v_D)), v_mul(v_three, v_C)), v_half);
^~~~~
/home/ubuntu/opencv-4.5.4/opencv_contrib-4.x/modules/signal/src/signal_resample.cpp:100:53: note: suggested alternative: ‘v_a’
v_float32 v_a = v_mul(v_sub(v_fma(v_three, v_B, v_add(v_inv_A, v_D)), v_mul(v_three, v_C)), v_half);
^~~~~
v_a
...and so on
Perhaps you use OpenCV 4.5.4 with OpenCV Contrib 4.x. Version mismatch between OpenCV and OpenCV Contrib makes these errors.
Please could you update OpenCV to latest 4.x branch if you want to use latest OpenCV Contrib ?
If not, please switch to 4.5.4 tag which is same as OpenCV. ( e.g. cd opencv_contrib; git checkout 4.5.4 ; git reset --hard
. )