0 environment
- VS2019
- CMAKE
- cuda11.5
- cudnn
Driving Google software on the plane for downloading dependency
1 download source code
https://github.com/opencv/opencv/releases/tag/3.4.9
https://github.com/opencv/opencv_contrib/releases/tag/3.4.9
Download
2 compilation
Set path and build path
Click configure
Click finish
Wait for the end
There is an alarm in the middle. It is not an error. Ignore it
3 start configuration
3-1 add cuda
3-2 add an extension library note path/
3-3 add sifit corner Library
3-4 add the world library and compile it into one
3-5 select the compiled version
3-6 whether to compile the available version of python (selected by default, but not required)
Then click generate
Please note that if you drive Google on a plane to ensure that some required files are downloaded during this process, you can also download them manually according to the later error report records.
Problem 1: the library is missing and needs to be downloaded manually
These are not downloaded automatically during the configuration process. You need to download them manually from the website
Find out what hasn't been downloaded from the download record, download it manually and put it in the corresponding position
first group
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/opencv_ffmpeg.dll
Put on
opencv_349/build/3rdparty/ffmpeg/opencv_ffmpeg.dll"
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/opencv_ffmpeg_64.dll
Put on
opencv_349/build/3rdparty/ffmpeg/opencv_ffmpeg_64.dll
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/548e3c997a80d65f710b9048f1d33371e3a203ac/ffmpeg/ffmpeg_version.cmake
Save as txt format, you need to remove txt
Put on
opencv349/opencv_349/build/3rdparty/ffmpeg/ffmpeg_version.cmake
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_win_intel64_20180723_general.zip
Put on
opencv_349/build/3rdparty/ippicv
Then automatically transfer back to
opencv_349\.cache\ippicv\1d222685246896fe089f88b8858e4b2f-ippicv_2019_win_intel64_20180723_general.zip
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i"
Put
opencv_349/build/downloads/xfeatures2d/boostdesc_bgm.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i
put to
opencv_349/build/downloads/xfeatures2d/boostdesc_bgm_bi.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i
put to
opencv_349/build/downloads/xfeatures2d/boostdesc_bgm_hd.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i
put to
opencv_349/build/downloads/xfeatures2d/boostdesc_binboost_064.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i
put to
opencv_349/build/downloads/xfeatures2d/boostdesc_binboost_128.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i
put to
opencv_349/build/downloads/xfeatures2d/boostdesc_binboost_256.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i
put to
opencv_349/build/downloads/xfeatures2d/boostdesc_lbgm.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i
put to
/opencv_349/build/downloads/xfeatures2d/vgg_generated_48.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i
put to
opencv_349/build/downloads/xfeatures2d/vgg_generated_64.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i
put to
opencv_349/build/downloads/xfeatures2d/vgg_generated_80.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i
put to
opencv_349/build/downloads/xfeatures2d/vgg_generated_120.i
download
https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
put to
opencv_349/build/testdata/cv/face//face_landmark_model.dat
again
click
Second error
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_nppicom_LIBRARY (ADVANCED) linked by target "opencv_test_phase_unwrapping" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_core" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_highgui" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_videostab" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudaarithm" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_core" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_rgbd" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_features2d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudafeatures2d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_imgcodecs" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudaarithm" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_flann" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_objdetect" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_line_descriptor" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_hdf" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudafeatures2d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_imgproc" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_videoio" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudalegacy" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_stereo" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_imgproc" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_line_descriptor" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_ml" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudafilters" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_reg" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_reg" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudastereo" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_video" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_tracking" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_video" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudabgsegm" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_stereo" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_xphoto" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudabgsegm" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_shape" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudafilters" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudaimgproc" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudaimgproc" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudawarping" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_dnn" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudawarping" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_bioinspired" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_photo" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_dnn" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_features2d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudacodec" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_fuzzy" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_xphoto" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_imgcodecs" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_videoio" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_photo" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_bgsegm" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_text" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_calib3d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudacodec" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_calib3d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudastereo" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_objdetect" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_structured_light" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_tracking" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_xfeatures2d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_xfeatures2d" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_ximgproc" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_ximgproc" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_aruco" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_bioinspired" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudalegacy" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudaobjdetect" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudaobjdetect" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_cudaoptflow" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_cudaoptflow" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_face" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_optflow" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_optflow" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_stitching" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_stitching" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_test_superres" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_perf_superres" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_world" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_world" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/world linked by target "opencv_img_hash" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_contrib_349/modules/img_hash linked by target "opencv_img_hash" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_contrib_349/modules/img_hash linked by target "opencv_test_img_hash" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_contrib_349/modules/img_hash linked by target "opencv_ts" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/ts linked by target "opencv_ts" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/modules/ts linked by target "opencv_traincascade" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/traincascade linked by target "opencv_createsamples" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/createsamples linked by target "opencv_annotation" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/annotation linked by target "opencv_visualisation" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/visualisation linked by target "opencv_interactive-calibration" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/interactive-calibration linked by target "opencv_version_win32" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/version linked by target "opencv_version" in directory D:/dongdong/v1_Tool/v3_dll/opencv349/opencv_349/apps/version Generating done
First error reporting solution
https://stackoverflow.com/questions/46584000/cmake-error-variables-are-set-to-notfound
1) find rows that meet the following conditions:
find_cuda_helper_libs(nppi)
And replace it with the following line:
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)
I tried the following methods and succeeded:
FindCUDA.cmake changes the nppi into several split in the library. This must be done in three places. Keep in mind that this change is only for use with CUDA 9.0, I will not check the version or anything, and you should do so if you intend to provide it to different people with different CUDA versions.
1) Find rows that meet the following criteria:
find_cuda_helper_libs(nppi)
And replace it with the following line:
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) Find row
set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")
And change it to
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) Find the unset variable and add a new variable
unset(CUDA_nppi_LIBRARY CACHE)
And change it to:
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)
In addition, opencvdetectcuda Cmake you must also remove the 2.0 schema that is no longer supported.
It has:
... 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") ...
It should be:
Basically, the first if is deleted and the first elif becomes an if.
... 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") ...
At the same time, modify and remove 2.0
set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1")
After modification
set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1")