CMake错误:变量设置为NOTFOUND

时间:2017-10-05 10:57:49

标签: opencv cmake cuda ubuntu-16.04

我首先使用cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb安装了cuda。现在我尝试安装OpenCV 3.3.0但是我收到了CMake错误:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppi_LIBRARY (ADVANCED)

然后是一长串目标,如:

linked by target "opencv_cudev" in directory /home/jjros/opencv-3.3.0/modules/cudev

我使用此命令编译库:

cmake 

-D CMAKE_C_COMPILER=/usr/bin/gcc-5 \ 
-D CMAKE_BUILD_TYPE=RELEASE \   
-D CMAKE_INSTALL_PREFIX=/usr/local \     
-D WITH_CUDA=ON \     
-D WITH_CUBLAS=ON \     
-D WITH_TBB=ON \    
-D WITH_V4L=ON \    
-D WITH_QT=ON \     
-D WITH_OPENGL=ON \    
-D ENABLE_FAST_MATH=1 \        
-D CUDA_FAST_MATH=1 \        
-D WITH_CUBLAS=1 \        
-D INSTALL_C_EXAMPLES=OFF \    
-D INSTALL_PYTHON_EXAMPLES=ON \        
-D BUILD_SHARED_LIBS=ON \        
-D WITH_GTK=ON \        
-D BUILD_EXAMPLES=ON \     
-D  CUDA_NVCC_FLAGS="-D_FORCE_INLINES" .. 

如何设置我的CMakeLists?出了什么问题?

11 个答案:

答案 0 :(得分:49)

我尝试了以下内容并且有效:

FindCUDA.cmake nppi库更改为多个已拆分的库。这必须在3个地方完成。请记住,此更改只是为了使其与CUDA 9.0一起使用,我没有对版本或任何内容进行检查,如果您计划将其提供给具有不同CUDA版本的不同人员,则应该这样做。

1)寻找以下行:

find_cuda_helper_libs(nppi)

并将其替换为以下行:

  find_cuda_helper_libs(nppial)
  find_cuda_helper_libs(nppicc)
  find_cuda_helper_libs(nppicom)
  find_cuda_helper_libs(nppidei)
  find_cuda_helper_libs(nppif)
  find_cuda_helper_libs(nppig)
  find_cuda_helper_libs(nppim)
  find_cuda_helper_libs(nppist)
  find_cuda_helper_libs(nppisu)
  find_cuda_helper_libs(nppitc)

2)找到这一行:

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

并将其更改为

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

3)找到未设置的变量并添加新变量 所以,找到:

unset(CUDA_nppi_LIBRARY CACHE)

并将其更改为:

unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)

同样在OpenCVDetectCUDA.cmake中你必须删除不再受支持的2.0架构。

它有:

  ...
  set(__cuda_arch_ptx "")
  if(CUDA_GENERATION STREQUAL "Fermi")
    set(__cuda_arch_bin "2.0")
  elseif(CUDA_GENERATION STREQUAL "Kepler")
    set(__cuda_arch_bin "3.0 3.5 3.7")
  ...

应该是:

  ...
  set(__cuda_arch_ptx "")
  if(CUDA_GENERATION STREQUAL "Kepler")
    set(__cuda_arch_bin "3.0 3.5 3.7")
  elseif(CUDA_GENERATION STREQUAL "Maxwell")
    set(__cuda_arch_bin "5.0 5.2")
  ...

基本上我删除了第一个if和第一个elif变成了if。

正如@matko 所提及的那样 它还有:

set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1") 

应改为:

set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1") 

最后一件事是需要的。 CUDA 9.0现在有一个用于halffloat(cuda_fp16.h)的独立文件。这需要包含在OpenCV中。

来自CUDA 9.0手册:

  

不支持的功能   一般CUDA   ‣CUDA库。已删除内置函数__float2half_rn()和__half2float()。使用CUDA工具包中更新的fp16头文件中的等效功能。

为此,您需要添加:

#include <cuda_fp16.h>
头文件中的

opencv-3.3.0\modules\cudev\include\opencv2\cudev\common.hpp

这是OpenCV明确补丁的基础知识。缺少什么,就像我之前告诉过你的那样,我不关心CUDA版本(它需要一个IF)。此外,CUDA 9.0还有一些OpenCV使用的弃用功能......这可能会在某些时候由OpenCV团队取代。也可能不使用一个或多个nppi的分割库。

最终建议: 对于具有如此多选项的这种复杂cmakes,您应该使用ccmake(sudo apt-get install cmake-curses-gui)来轻松更改变量或至少查看值,或者使用真正的GUI。

对于有windows和visual studio 7的其他人,我还必须更改CUDA_HOST_COMPILER变量,否则你会遇到一堆cmd.exe exit with code 1或类似的错误...它似乎无法&# 39;用自动检测到的那个到达那里。

这适用于我使用OpenCV 3.3和CUDA 9.0以及带有Windows 10的Visual Studio 2017.我认为它也适用于Ubuntu,因为错误和更改与CUDA有关。我没有对它进行过多次测试,我编译并运行了一些性能测试,所有这些都通过了......所以我认为一切正常。

答案 1 :(得分:4)

@ api55我基于这个过程可以完成但是仍然遇到@Ja_cpp问题(CMake Error at cuda_compile_generated_gpu_mat.cu.o.cmake:208(message)),在我的进程中,还需要添加

in

  

OpenCVDetectCUDA.cmake

它有:

set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1") 

更改为:

set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1")

它对我有用。

答案 2 :(得分:3)

https://github.com/opencv/opencv/tree/master/cmake(master branch- opencv 3.4.1)替换 FindCUDA.cmake OpenCVDetectCUDA.cmake 适用于 opencv_2.4.13 Pascal 架构的 NVIDIA TitanXP 显卡以及Ubuntu 16.04上的 cuda-9.0

答案 3 :(得分:3)

这在具有OpenCV 4.2.0和CUDA 10.0的Ubuntu 18.04上对我有用

显然,我缺少指向这些库的符号链接,因此CMake找不到它们:

sudo ln -s /usr/lib/x86_64-linux-gnu/libnppc.so.9.1 /usr/lib/x86_64-linux-gnu/libnppc.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppial.so.9.1 /usr/lib/x86_64-linux-gnu/libnppial.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppicc.so.9.1 /usr/lib/x86_64-linux-gnu/libnppicc.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppicom.so.9.1 /usr/lib/x86_64-linux-gnu/libnppicom.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppidei.so.9.1 /usr/lib/x86_64-linux-gnu/libnppidei.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppif.so.9.1 /usr/lib/x86_64-linux-gnu/libnppif.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppig.so.9.1 /usr/lib/x86_64-linux-gnu/libnppig.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppim.so.9.1 /usr/lib/x86_64-linux-gnu/libnppim.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppist.so.9.1 /usr/lib/x86_64-linux-gnu/libnppist.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppisu.so.9.1 /usr/lib/x86_64-linux-gnu/libnppisu.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnppitc.so.9.1 /usr/lib/x86_64-linux-gnu/libnppitc.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libnpps.so.9.1 /usr/lib/x86_64-linux-gnu/libnpps.so

更新:尽管以上命令使我能够成功运行CMake,但仍无法构建。 sudo apt-get install nvidia-cuda-toolkit达到了目的。

答案 4 :(得分:2)

我还必须在OpenCVDetectCUDA.cmake中执行以下操作:

替换

    if(${CUDA_VERSION} VERSION_LESS "8.0")
       set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2")
     else()
       set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1")
     endif()

    if(${CUDA_VERSION} VERSION_LESS "8.0")
      set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2")    
      set(CUDA_ARCH_BIN "3.0 3.5 3.7 5.0 5.2")
    else()
      set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1")
      set(CUDA_ARCH_BIN "3.0 3.5 3.7 5.0 5.2 6.0 6.1")
    endif()

答案 5 :(得分:1)

在安装下一个安装程序时出现了相同的错误。

Ubuntu 18.04 cuda,cudnn,opencv 4.2和4.3。已经进行了几次尝试来解决此问题,并最终推出了下一个可运行的安装。

重要的是尚未安装驱动程序。已经注意到,我的安装只能通过全新安装的ubuntu进行操作

根据您的情况更改GPU_ARCH版本。在https://developer.nvidia.com/cuda-gpus中查看您的版本

export CUDA_VERSION='10.2.89'
export CUDA_PKG_VERSION='10-2=10.2.89-1'
export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64
export NCCL_VERSION='2.5.6'
export CUDNN_VERSION='7.6.5.32'
export OPENCV_VERSION='4.3.0'
export GPU_ARCH='6.1'

apt-get update  && \
apt-get install -y --no-install-recommends \
gnupg2 curl ca-certificates && \
    curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub | apt-key add - && \
    echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list && \
    echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list


apt-get update && \
apt-get install -y --no-install-recommends \
        cuda-cudart-$CUDA_PKG_VERSION \
cuda-compat-10-2 && \
ln -s cuda-10.2 /usr/local/cuda


apt-get update && \
apt-get install -y --no-install-recommends \
    cuda-libraries-$CUDA_PKG_VERSION \
cuda-nvtx-$CUDA_PKG_VERSION \
libcublas10=10.2.2.89-1 \
libnccl2=$NCCL_VERSION-1+cuda10.2 && \
    apt-mark hold libnccl2 


apt-get update && apt-get install -y --no-install-recommends \
    libcudnn7=$CUDNN_VERSION-1+cuda10.2 && \
    apt-mark hold libcudnn7


apt-get update && apt-get install -y --no-install-recommends \
        cuda-nvml-dev-$CUDA_PKG_VERSION \
        cuda-command-line-tools-$CUDA_PKG_VERSION \
cuda-libraries-dev-$CUDA_PKG_VERSION \
        cuda-minimal-build-$CUDA_PKG_VERSION \
        libnccl-dev=$NCCL_VERSION-1+cuda10.2 \
libcublas-dev=10.2.2.89-1


apt-get update && apt-get install -y --no-install-recommends \
    libcudnn7=$CUDNN_VERSION-1+cuda10.2 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda10.2 && \
    apt-mark hold libcudnn7



apt update && \
    apt install -y \
    tzdata \
    git \
    cmake \
    wget \
    unzip \
    build-essential \
    zlib1g-dev \
    libjpeg-dev \
    libwebp-dev \
    libpng-dev \
    libtiff5-dev \
    libopenexr-dev \
    libgdal-dev \
    libgtk2.0-dev \
    libdc1394-22-dev \
    libavcodec-dev \
    libavformat-dev \
    libswscale-dev \
    libtheora-dev \
    libvorbis-dev \
    libxvidcore-dev \
    libx264-dev \
    yasm \
    libopencore-amrnb-dev \
    libopencore-amrwb-dev \
    libv4l-dev \
    libxine2-dev \
    libgstreamer1.0-dev \
    libgstreamer-plugins-base1.0-dev \
    libtbb-dev \
    libeigen3-dev \
    python3-dev \
    python3-tk \
    python3-numpy



wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
    unzip ${OPENCV_VERSION}.zip && rm ${OPENCV_VERSION}.zip && \
    mv opencv-${OPENCV_VERSION} OpenCV && \
    cd OpenCV && \
    wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
    unzip ${OPENCV_VERSION}.zip && \
    mkdir build && \
    cd build && \
    cmake \
      -D WITH_TBB=ON \
      -D CMAKE_BUILD_TYPE=RELEASE \
      -D BUILD_EXAMPLES=ON \
      -D WITH_FFMPEG=ON \
      -D WITH_V4L=ON \
      -D WITH_OPENGL=ON \
      -D WITH_CUDA=ON \
      -D WITH_GSTREAMER=ON \
      -D OPENCV_DNN_CUDA=ON \
      -D CUDA_ARCH_BIN=${GPU_ARCH} \
      -D CUDA_ARCH_PTX=${GPU_ARCH} \
      -D WITH_CUBLAS=ON \
      -D WITH_CUFFT=ON \
      -D WITH_EIGEN=ON \
      -D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
      -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-${OPENCV_VERSION}/modules/ \
      ..

make all -j$(nproc)
make

答案 6 :(得分:0)

@ api55解决方案解决了与CUDA_nppi_LIBRARY相关的错误。所以,只需按照步骤操作即可(适用于Ubuntu 16.04 opencv 3.3)。 确保支持您的GPU架构。我已经不再支持Fermi了。在使用cuda支持安装Cuda-8时,解决方案是使用gcc-5编译器安装opencv 3.3

答案 7 :(得分:0)

尝试了api555所说的方式,但是当cmake时,它还可以构建sm20,我做了两种方法:

1.in OpenCVDetectCUDA.cmake文件,第133行,在“ foreach(ARCH IN LISTS ARCH_LIST)”循环中,添加     “ elseif(ARCH MATCHES "20")”   之间,如果和其他。

2.in文件OpenCVDetectCUDA.cmake,第46行,     “ set(_generations "Fermi" "kepler" "Maxwell" "Pascal")”   只需删除“ Fermi”

我更喜欢第二种方式,可能会有所帮助。

答案 8 :(得分:0)

用最新版本替换现有的opencv,它可以正常工作。 XD

答案 9 :(得分:0)

在使用cuda安装opencv4.2时,我在这里遇到了同样的问题。

我的cmake版本最初是3.16.2。但是,此版本不支持HTTP下载,因此您可能会遇到下载失败问题。

因此,我将cmake重新安装到3.9版,该版本支持HTTP协议,下载问题已解决。

但是新问题与上述@ja_cpp相同。 (cmake时找不到CUDA_nppi_LIBRARY(ADVANCED)

我遵循@ api55的方法并修改了FindCUDA.cmake和OpenCVDetectCUDA.cmake, 但是问题仍然存在。

由于我是在安装opencv4.2而不是opecv3,所以我认为这就是为什么修改不起作用的原因。

最棘手的事情是,我将我的cmake版本更新回了3.16.2,然后再次使用未修改的文件再次进行cmake,并且成功了!

我用了这个命令。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=6.1 -D WITH_CUBLAS=1 -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules -D HAVE_opencv_python3=ON -D PYTHON_EXECUTABLE=~/pengwenchen/anaconda3/envs/pytorch/bin/python -D BUILD_EXAMPLES=ON ..

我的环境:GPU-1080,cmake版本3.16.2,cuda版本10.0

希望这个答案可以对使用cuda安装opencv4.2的人有所帮助。 :)

答案 10 :(得分:0)

我已经使用以下脚本根据之前的答案在 jetson nano (JetPack 4.5.1) 上安装了 OpenCV 2.4.13.7(带有 CUDA、QT、FFMPEG 等):

#!/bin/bash

#The script was written for JetPack 4.5.1

echo "** Install vnc"
apt-get update -y 
apt-get install vino -y

chmod 777 /etc/X11/xorg.conf

echo '
   Section "Screen"
   Identifier    "Default Screen"
   Monitor       "Configured Monitor"
   Device        "Tegra0"
   SubSection "Display"
       Depth    24
       Virtual 1280 800 # Modify the resolution by editing these values
       EndSubSection
EndSection' >> /etc/X11/xorg.conf

mkdir -p ~/.config/autostart
cp /usr/share/applications/vino-server.desktop ~/.config/autostart

dbus-launch gsettings set org.gnome.Vino prompt-enabled false 
dbus-launch gsettings set org.gnome.Vino require-encryption false    

dbus-launch gsettings set org.gnome.Vino authentication-methods "['vnc']"       
dbus-launch gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64) 

echo "** Install requirements"
apt-get update -y  
apt-get install nano -y
apt-get install libc-ares-dev -y  
apt-get install uuid-dev -y  
apt-get install libssl-dev -y  
apt-get install libcurl4-openssl-dev -y   
apt-get install git -y  
apt-get install build-essential -y  
apt-get install libgtk2.0-dev -y
apt-get install pkg-config -y
apt-get install libavcodec-dev -y 
apt-get install libavformat-dev -y 
apt-get install libswscale-dev -y
apt-get install python-dev -y 
apt-get install python-numpy -y 
apt-get install libtbb2 -y 
apt-get install libtbb-dev -y 
apt-get install libjpeg-dev -y 
apt-get install libpng-dev -y
apt-get install libtiff-dev -y
apt-get install libjasper-dev -y
apt-get install libdc1394-22-dev -y
apt-get install libv4l-dev -y 
apt-get install v4l2ucp -y 
apt-get install v4l-utils -y
apt-get install libtesseract-dev -y 
apt-get install libleptonica-dev -y  
apt-get install tesseract-ocr-eng -y
apt-get install libcanberra-gtk3-module -y
apt-get install qt5-default -y
apt-get  install libcanberra-gtk-module -y
apt-get  install wget -y 
apt-get  install gcc -y   
apt-get  install g++ -y
#if you need to update your GCC please uncomment the commands below      
#apt-get install software-properties-common -y
#add-apt-repository ppa:ubuntu-toolchain-r/test -y
#apt-get update
#apt-get install gcc-9 g++-9 -y
#update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 20 --slave /usr/bin/g++ g++ /usr/bin/g++-9
#gcc --version

cd /tmp

echo "** Install cmake"
wget https://github.com/Kitware/CMake/releases/download/v3.16.4/cmake-3.16.4.tar.gz   
tar zxvf cmake-3.16.4.tar.gz    
cd cmake-3.16.4 
./configure 
make   
make install  
cmake -version  
cd ..
rm -r cmake* 

echo "** Install OpenCV 2.4.13.7"
#first, need to remove the previous version of OpenCV
apt-get purge *libopencv* -y

git clone -b 2.4 --single-branch https://github.com/opencv/opencv.git
cd opencv
git checkout 2.4.13.7

#need to implement some changes to build OpenCV with CUDA and QT
old_line='find_cuda_helper_libs(nppi)'
new_line='find_cuda_helper_libs(nppial)\n  find_cuda_helper_libs(nppicc)\n  find_cuda_helper_libs(nppicom)\n  find_cuda_helper_libs(nppidei)\n  find_cuda_helper_libs(nppif)\n  find_cuda_helper_libs(nppig)\n  find_cuda_helper_libs(nppim)\n  find_cuda_helper_libs(nppist)\n  find_cuda_helper_libs(nppisu)\n  find_cuda_helper_libs(nppitc)'
sed -i -e "s/$old_line/$new_line/g" cmake/FindCUDA.cmake 

old_line='set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")'
new_line='set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")'
sed -i -e "s/$old_line/$new_line/g" cmake/FindCUDA.cmake

old_line='unset(CUDA_nppi_LIBRARY CACHE)'
new_line='unset(CUDA_nppial_LIBRARY CACHE)\n  unset(CUDA_nppicc_LIBRARY CACHE)\n  unset(CUDA_nppicom_LIBRARY CACHE)\n  unset(CUDA_nppidei_LIBRARY CACHE)\n  unset(CUDA_nppif_LIBRARY CACHE)\n  unset(CUDA_nppig_LIBRARY CACHE)\n  unset(CUDA_nppim_LIBRARY CACHE)\n  unset(CUDA_nppist_LIBRARY CACHE)\n  unset(CUDA_nppisu_LIBRARY CACHE)\n  unset(CUDA_nppitc_LIBRARY CACHE)'
sed -i -e "s/$old_line/$new_line/g" cmake/FindCUDA.cmake 

old_line='glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);'
new_line='\/\/glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);'
sed -i -e "s/$old_line/$new_line/g" modules/highgui/src/window_QT.cpp

sed -i -e '61,65s/^/\/\/ /' -e '67s/^/\/\/ /' /usr/local/cuda-10.2/include/cuda_gl_interop.h 

cd ..

git clone https://github.com/opencv/opencv_extra.git
cd opencv_extra
git checkout 2.4.13.7
cd ..

mkdir release
cd release

cmake \
  -D CMAKE_CXX_COMPILER=/usr/bin/g++-7          \
  -D CMAKE_C_COMPILER=/usr/bin/gcc-7            \
  -D CMAKE_BUILD_TYPE=RELEASE                   \
  -D INSTALL_C_EXAMPLES=ON                      \
  -D CMAKE_INSTALL_PREFIX=/usr/local            \
  -D ENABLE_FAST_MATH=ON                        \
  -D WITH_V4L=ON                                \
  -D WITH_OPENGL=ON                             \
  -D WITH_CUDA=ON                               \
  -D WITH_QT=ON                                 \
  -D WITH_CUBLAS=ON                             \
  -D WITH_LIBV4L=ON                             \
  -D WITH_GSTREAMER=ON                          \
  -D WITH_FFMPEG=ON                             \
  -D WITH_GTK=ON                                \
  -D BUILD_EXAMPLES=ON                          \
  -D BUILD_opencv_python2=ON                    \
  -D BUILD_opencv_python3=ON                    \
  -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 \
  -D CUDA_ARCH_BIN=5.3                          \
  -D CUDA_ARCH_PTX=""                           \
  -D CUDA_FAST_MATH=ON                          \
  -D OPENCV_TEST_DATA_PATH=../opencv_extra/testdata ../opencv

make -j4
make install
cd ..
rm -r opencv*

cd /etc/ld.so.conf.d
touch opencv.conf
chmod 777 opencv.conf
echo "/usr/local/lib/libopencv_core.so.2.4" >> opencv.conf
ldconfig -v

sudo reboot