在Ubuntu 18.04上使用cuda 9.2的opencv 4

时间:2018-09-17 04:59:00

标签: opencv ubuntu cuda ubuntu-18.04

我已经在Ubuntu 18.04机器上编译了opencv 4和Cuda 9.2。我尝试使用我的应用程序中经常使用的OpenCV头文件测试示例代码。使用nvcc进行编译时,我得到以下信息:

    /usr/local/cuda/bin/nvcc -o saxpy saxpy.cu --std=c++11 -I /opt/sensen/include/ `pkg-config opencv --cflags --libs`
/opt/sensen/include/opencv2/core/types_c.h(1359): error: no suitable constructor exists to convert from "int" to "CvSlice"

/opt/sensen/include/opencv2/core/types_c.h(1359): error: expected a ")"

2 errors detected in the compilation of "/tmp/tmpxft_00004bc8_00000000-8_saxpy.cpp1.ii".

还有其他人遇到过这个问题吗?任何建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

我和@ mandar-sovani有同样的问题。

我正在使用Ubuntu 14.04OpenCV 3.4.3。我对此问题的解决方案:检入您的cuda代码(.cu个文件),其中哪个#include预处理程序指令正在添加OpenCV标头。然后以某种方式修改您的代码,以避免在您的cuda代码(.cu文件)中包含上述标头。

注意:感谢@talonmies对解决方案的深入了解。

答案 1 :(得分:-1)

福尔摩斯,尝试用以下代码替换该奇怪的代码块:

CV_INLINE  CvSlice  cvSlice( int start, int end )
{
    CvSlice slice = { start, end };
    return slice;
}

为我工作! (在Visual Studio 2017上)