c++ - 为什么用Visual Studio 2017编译openCV3.2会出错?

标签 c++ visual-studio opencv

我想添加 opencv 和 openCV contrib 模块,因此我下载了 opencv_contrib repo 。然后使用 VS2017-64it 配置,在 CMAKE 询问时在 CMAKE 上添加 OPENCV_EXTRA_MODUlES_PATH 并进行 CMake。然后使用管理员权限打开项目。然后构建安装并遇到问题。 VS 显示一个窗口,显示“Microsoft (R) C/C++ 优化编译器已停止工作”。错误列表是:

error   C1903   Can not recover from the previous error;Stopping compilation (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_core.cpp) opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   674 
error   MSB6006 'cmd.exe'exited,The code is 1。  opencv_core C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets  171 
...
error   MSB6006 'cmd.exe'exited,The code is 1。  opencv_test_cudev   C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets  171 
error   MSB3073 command'setlocal
'D:\Program Files\CMake\bin\cmake.exe' -DBUILD_TYPE=Debug -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd'exited,The code is 1。    INSTALL C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets  133 
error   C2610   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::tuple(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudawarping\perf\perf_warping.cpp)   opencv_perf_cudawarping C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   535 
...
error   C2535   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::operator =(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &)': The member function has been defined or declared (Compile the source file D:\opencv3.2\opencv-master\modules\cudastereo\perf\perf_stereo.cpp) opencv_perf_cudastereo  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   674 
error   C1903   Can not recover from the previous error;Stopping compilation (Compile the source file D:\opencv3.2\opencv-master\modules\cudastereo\perf\perf_stereo.cpp)   opencv_perf_cudastereo  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   674 
error   C2610   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::tuple(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_core.cpp)   opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   535 
error   C2610   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::tuple(std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &&)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_core.cpp)    opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   536 
error   C2535   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::operator =(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &)': The member function has been defined or declared (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_core.cpp)  opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   674 
error   C2610   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::tuple(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_element_operations.cpp)   opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   535 
error   C2610   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::tuple(std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &&)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_element_operations.cpp)    opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   536 
error   C2535   'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::operator =(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &)': The member function has been defined or declared (Compile the source file D:\opencv3.2\opencv-master\modules\cudaarithm\perf\perf_element_operations.cpp) opencv_perf_cudaarithm  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   674 
...
error   C1903   Can not recover from the previous error;Stopping compilation (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp)   opencv_perf_cudaimgproc C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple   674 
error   LNK1104 can not open file'..\..\lib\Debug\opencv_highgui330d.lib'   opencv_annotation   D:\opencv3.2\build\apps\annotation\LINK 1   
...
error   LNK1104 can not open file'..\..\lib\Debug\opencv_highgui330d.lib'   opencv_test_core    D:\opencv3.2\build\modules\core\LINK    1   
error   D8040   An error occurred while creating a child process or communicating with a child process  opencv_perf_cudaarithm  D:\opencv3.2\build\modules\cudaarithm\cl    1   
error   LNK1104 can not open file'..\..\lib\Debug\opencv_cudaarithm330d.lib'    opencv_test_cudaarithm  D:\opencv3.2\build\modules\cudaarithm\LINK  1   
...
error   LNK1104 can not open file'..\..\lib\Debug\opencv_cudaoptflow330d.lib'   opencv_test_cudaoptflow D:\opencv3.2\build\modules\cudaoptflow\LINK 1   
error   D8040   An error occurred while creating a child process or communicating with a child process  opencv_perf_cudastereo  D:\opencv3.2\build\modules\cudastereo\cl    1   
error   LNK1104 can not open file'..\..\lib\Debug\opencv_cudastereo330d.lib'    opencv_test_cudastereo  D:\opencv3.2\build\modules\cudastereo\LINK  1   
error   D8040   An error occurred while creating a child process or communicating with a child process  opencv_perf_cudawarping D:\opencv3.2\build\modules\cudawarping\cl   1   
error   LNK1104 can not open file'..\..\lib\Debug\opencv_cudawarping330d.lib'   opencv_test_cudawarping D:\opencv3.2\build\modules\cudawarping\LINK 1   
...
error   LNK1104 can not open file'..\..\..\..\lib\Debug\opencv_highgui330d.lib' opencv_waldboost_detector   D:\opencv3.2\build\modules\xobjdetect\tools\waldboost_detector\LINK 1   
error   LNK1104 can not open file'..\..\lib\Debug\opencv_imgproc330d.lib'   opencv_xphoto   D:\opencv3.2\build\modules\xphoto\LINK  1   
error   LNK1104 can not open file'..\..\lib\Debug\opencv_xphoto330d.lib'    opencv_perf_xphoto  D:\opencv3.2\build\modules\xphoto\LINK  1   
error   LNK1104 can not open file'..\..\lib\Debug\opencv_xphoto330d.lib'    opencv_test_xphoto  D:\opencv3.2\build\modules\xphoto\LINK  1

输出是:

1>------ Has started all rebuilt: project: ZERO_CHECK, Configuration: Debug x64 ------
1>Checking Build System
1>CMake does not need to re-run because D:/opencv3.2/build/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/zlib/CMakeFiles/generate.stamp is up-to-date.
...
CMake does not need to re-run because D:/opencv3.2/build/apps/version/CMakeFiles/generate.stamp is up-to-date.
2>------ Has started all rebuilt: project: ippiw, Configuration: Debug x64 ------
3>------ Has started all rebuilt: project: opencv_core_SSE4_2, Configuration: Debug x64 ------
4>------ Has started all rebuilt: project: ittnotify, Configuration: Debug x64 ------
5>------ Has started all rebuilt: project: opencv_core_FP16, Configuration: Debug x64 ------
6>------ Has started all rebuilt: project: opencv_core_SSE4_1, Configuration: Debug x64 ------
7>------ Has started all rebuilt: project: opencv_core_AVX2, Configuration: Debug x64 ------
8>------ Has started all rebuilt: project: opencv_core_AVX, Configuration: Debug x64 ------
9>------ Has started all rebuilt: project: zlib, Configuration: Debug x64 ------
2>Building Custom Rule D:/opencv3.2/build/3rdparty/ippicv/ippiw_win/CMakeLists.txt
4>Building Custom Rule D:/opencv3.2/opencv-master/3rdparty/ittnotify/CMakeLists.txt
5>Building Custom Rule D:/opencv3.2/opencv-master/modules/core/CMakeLists.txt
6>Building Custom Rule D:/opencv3.2/opencv-master/modules/core/CMakeLists.txt
2>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/ippiw/CMakeFiles/generate.stamp is up-to-date.
7>Building Custom Rule D:/opencv3.2/opencv-master/modules/core/CMakeLists.txt
8>Building Custom Rule D:/opencv3.2/opencv-master/modules/core/CMakeLists.txt
4>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/ittnotify/CMakeFiles/generate.stamp is up-to-date.
5>CMake does not need to re-run because D:/opencv3.2/build/modules/core/CMakeFiles/generate.stamp is up-to-date.
9>Building Custom Rule D:/opencv3.2/opencv-master/3rdparty/zlib/CMakeLists.txt
6>CMake does not need to re-run because D:/opencv3.2/build/modules/core/CMakeFiles/generate.stamp is up-to-date.
7>CMake does not need to re-run because D:/opencv3.2/build/modules/core/CMakeFiles/generate.stamp is up-to-date.
8>CMake does not need to re-run because D:/opencv3.2/build/modules/core/CMakeFiles/generate.stamp is up-to-date.
9>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/zlib/CMakeFiles/generate.stamp is up-to-date.
5>convert.fp16.cpp
6>convert.sse4_1.cpp
3>Building Custom Rule D:/opencv3.2/opencv-master/modules/core/CMakeLists.txt
2>iw_core.c
...
4>jitprofiling.c
3>CMake does not need to re-run because D:/opencv3.2/build/modules/core/CMakeFiles/generate.stamp is up-to-date.
7>convert.avx2.cpp
7>mathfuncs_core.avx2.cpp
7>stat.avx2.cpp
9>adler32.c
...
2>iw_own.c
9>zlib.vcxproj -> D:\opencv3.2\build\3rdparty\lib\Debug\zlibd.lib
10>------ Has started all rebuilt: project: opencv_imgproc_AVX, Configuration: Debug x64 ------
10>Building Custom Rule D:/opencv3.2/opencv-master/modules/imgproc/CMakeLists.txt
10>CMake does not need to re-run because D:/opencv3.2/build/modules/imgproc/CMakeFiles/generate.stamp is up-to-date.
5>opencv_core_FP16.vcxproj -> D:\opencv3.2\build\modules\core\opencv_core_FP16.dir\Debug\opencv_core_FP16.lib
11>------ Has started all rebuilt: project: opencv_imgproc_AVX2, Configuration: Debug x64 ------
8>opencv_core_AVX.vcxproj -> D:\opencv3.2\build\modules\core\opencv_core_AVX.dir\Debug\opencv_core_AVX.lib
12>------ Has started all rebuilt: project: opencv_imgproc_SSE4_1, Configuration: Debug x64 ------
10>corner.avx.cpp
6>opencv_core_SSE4_1.vcxproj -> D:\opencv3.2\build\modules\core\opencv_core_SSE4_1.dir\Debug\opencv_core_SSE4_1.lib
13>------ Has started all rebuilt: project: libtiff, Configuration: Debug x64 ------
10>accum.avx.cpp
11>Building Custom Rule D:/opencv3.2/opencv-master/modules/imgproc/CMakeLists.txt
12>Building Custom Rule D:/opencv3.2/opencv-master/modules/imgproc/CMakeLists.txt
11>CMake does not need to re-run because D:/opencv3.2/build/modules/imgproc/CMakeFiles/generate.stamp is up-to-date.
12>CMake does not need to re-run because D:/opencv3.2/build/modules/imgproc/CMakeFiles/generate.stamp is up-to-date.
13>Building Custom Rule D:/opencv3.2/opencv-master/3rdparty/libtiff/CMakeLists.txt
13>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/libtiff/CMakeFiles/generate.stamp is up-to-date.
3>opencv_core_SSE4_2.vcxproj -> D:\opencv3.2\build\modules\core\opencv_core_SSE4_2.dir\Debug\opencv_core_SSE4_2.lib
14>------ Has started all rebuilt: project: IlmImf, Configuration: Debug x64 ------
11>filter.avx2.cpp
2>ippiw.vcxproj -> D:\opencv3.2\build\3rdparty\lib\Debug\ippiwd.lib
15>------ Has started all rebuilt: project: opencv_cudev, Configuration: Debug x64 ------
11>imgwarp.avx2.cpp
11>resize.avx2.cpp
12>imgwarp.sse4_1.cpp
11>undistort.avx2.cpp
12>resize.sse4_1.cpp
14>Building Custom Rule D:/opencv3.2/opencv-master/3rdparty/openexr/CMakeLists.txt
15>Building Custom Rule D:/opencv3.2/opencv-master/modules/cudev/CMakeLists.txt
13>tif_aux.c
13>tif_close.c
13>tif_codec.c
13>tif_color.c
13>tif_compress.c
13>tif_dir.c
13>tif_dirinfo.c
14>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/openexr/CMakeFiles/generate.stamp is up-to-date.
13>tif_dirread.c
15>CMake does not need to re-run because D:/opencv3.2/build/modules/cudev/CMakeFiles/generate.stamp is up-to-date.
15>stub.cpp
14>half.cpp
14>IexBaseExc.cpp
14>IexThrowErrnoExc.cpp
14>IlmThread.cpp
14>IlmThreadMutex.cpp
14>IlmThreadMutexWin32.cpp
14>IlmThreadPool.cpp
14>IlmThreadSemaphore.cpp
14>IlmThreadSemaphoreWin32.cpp
14>IlmThreadWin32.cpp
14>ImathColorAlgo.cpp
15>  Creating library D:/opencv3.2/build/lib/Debug/opencv_cudev330d.lib 和对象 D:/opencv3.2/build/lib/Debug/opencv_cudev330d.exp
13>tif_dirwrite.c
13>tif_dumpmode.c
13>tif_error.c
13>tif_extension.c
13>tif_fax3.c
13>tif_fax3sm.c
13>tif_flush.c
13>tif_getimage.c
13>tif_jbig.c
15>opencv_cudev.vcxproj -> D:\opencv3.2\build\bin\Debug\opencv_cudev330d.dll
13>tif_jpeg_12.c
15>opencv_cudev.vcxproj -> D:/opencv3.2/build/bin/Debug/opencv_cudev330d.pdb (Full PDB)
16>------ Has started all rebuilt: project: libjasper, Configuration: Debug x64 ------
13>tif_jpeg.c
13>tif_luv.c
13>tif_lzma.c
16>Building Custom Rule D:/opencv3.2/opencv-master/3rdparty/libjasper/CMakeLists.txt
16>CMake does not need to re-run because D:/opencv3.2/build/3rdparty/libjasper/CMakeFiles/generate.stamp is up-to-date.
13>tif_lzw.c
13>tif_next.c
16>jas_cm.c
16>jas_debug.c
16>jas_getopt.c
16>jas_icc.c
16>jas_iccdata.c
16>jas_image.c
13>tif_ojpeg.c
13>tif_open.c
16>jas_init.c
16>jas_malloc.c
13>tif_packbits.c
13>tif_pixarlog.c
16>jas_seq.c
13>tif_predict.c
16>jas_stream.c
16>jas_string.c
13>tif_print.c
13>tif_read.c
16>jas_tmr.c
13>tif_strip.c
13>tif_swab.c
16>jas_tvp.c
16>jas_version.c
13>tif_thunder.c
16>jp2_cod.c
16>jp2_dec.c
13>tif_tile.c
16>jp2_enc.c
16>jpc_bs.c
16>jpc_cs.c
16>jpc_dec.c
16>jpc_enc.c
13>tif_version.c
13>tif_warning.c
16>jpc_math.c
13>tif_write.c
13>tif_zip.c
13>tif_win32.c
16>jpc_mct.c
16>jpc_mqcod.c
16>jpc_mqdec.c
16>jpc_mqenc.c
16>jpc_qmfb.c
16>jpc_t1cod.c
16>jpc_t1dec.c
16>jpc_t1enc.c
16>jpc_t2cod.c
16>jpc_t2dec.c
16>jpc_t2enc.c
16>jpc_tagtree.c
16>jpc_tsfb.c
16>jpc_util.c
13>tif_stream.cxx
14>ImathFun.cpp
14>ImathMatrixAlgo.cpp
14>ImathRandom.cpp
14>ImathVec.cpp
16>libjasper.vcxproj -> D:\opencv3.2\build\3rdparty\lib\Debug\libjasperd.lib
17>------ Has started all rebuilt: project: libjpeg, Configuration: Debug x64 ------
13>libtiff.vcxproj -> D:\opencv3.2\build\3rdparty\lib\Debug\libtiffd.lib
...
105>------ Has started all rebuilt: project: opencv_perf_optflow, Configuration: Debug x64 ------
104>Building Custom Rule D:/opencv3.2/opencv-master/modules/cudaobjdetect/CMakeLists.txt
104>CMake does not need to re-run because D:/opencv3.2/build/modules/cudaobjdetect/CMakeFiles/generate.stamp is up-to-date.
105>Building Custom Rule D:/opencv3.2/opencv_contrib-master/modules/optflow/CMakeLists.txt
104>opencv_perf_cudaobjdetect_pch.cpp
105>CMake does not need to re-run because D:/opencv3.2/build/modules/optflow/CMakeFiles/generate.stamp is up-to-date.
99>LINK : fatal error LNK1104: can not open file'..\..\lib\Debug\opencv_cudafeatures2d330d.lib'
98>LINK : fatal error LNK1104: can not open file'..\..\lib\Debug\opencv_cudacodec330d.lib'
105>opencv_perf_optflow_pch.cpp
99>Has completed the project'opencv_perf_cudafeatures2d.vcxproj'-failed。
98>Has completed the project'opencv_perf_cudacodec.vcxproj'-failed。
106>------ Has started all rebuilt: project: opencv_perf_objdetect, Configuration: Debug x64 ------
107>------ Has started all rebuilt: project: opencv_perf_line_descriptor, Configuration: Debug x64 ------
106>Building Custom Rule D:/opencv3.2/opencv-master/modules/objdetect/CMakeLists.txt
106>CMake does not need to re-run because D:/opencv3.2/build/modules/objdetect/CMakeFiles/generate.stamp is up-to-date.
107>Building Custom Rule D:/opencv3.2/opencv_contrib-master/modules/line_descriptor/CMakeLists.txt
107>CMake does not need to re-run because D:/opencv3.2/build/modules/line_descriptor/CMakeFiles/generate.stamp is up-to-date.
106>opencv_perf_objdetect_pch.cpp
107>opencv_perf_line_descriptor_pch.cpp
101>perf_bilateral_filter.cpp
101>perf_blend.cpp
101>perf_canny.cpp
101>perf_color.cpp
101>perf_corners.cpp
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(535): error C2610: 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::tuple(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_blend.cpp)
101>D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_blend.cpp(57): note: See Instantiating a Class Template That Is Compiling 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>' recommend
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(536): error C2610: 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::tuple(std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &&)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_blend.cpp)
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(674): error C2535: 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::operator =(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn> &)': The member function has been defined or declared (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_blend.cpp)
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(574): note: See also'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth,perf::`anonymous-namespace'::MatCn>::operator ='statement (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_blend.cpp)
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(674): fatal error C1903: Can not recover from the previous error;Stopping compilation (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_blend.cpp)
101>'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX86\x64\CL.exe'Internal compiler error
101>  Please select Visual C ++
101>'Technical support' command on the 'Help' menu, or open the technical support help file for more information
101>perf_gftt.cpp
101>perf_histogram.cpp
101>perf_hough.cpp
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(535): error C2610: 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::tuple(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp)
101>D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp(56): note: See Instantiating a Class Template That Is Compiling 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>' recommend
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(536): error C2610: 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::tuple(std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &&)': Not a special member function that can be defaulted (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp)
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(674): error C2535: 'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::operator =(const std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth> &)': The member function has been defined or declared (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp)
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(574): note: See also'std::tuple<cv::Size,perf::`anonymous-namespace'::MatDepth>::operator ='statement (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp)
101>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\tuple(674): fatal error C1903: Can not recover from the previous error;Stopping compilation (Compile the source file D:\opencv3.2\opencv-master\modules\cudaimgproc\perf\perf_histogram.cpp)
101>'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX86\x64\CL.exe'Internal compiler error
101>  Please select Visual C ++
101>'Technical support' command on the 'Help' menu, or open the technical support help file for more information
100>perf_filters.cpp
100>perf_main.cpp
102>perf_grayworld.cpp
102>perf_learning_based_color_balance.cpp
102>perf_main.cpp
103>augmented_unscented_kalman.cpp
103>feature.cpp
103>featureColorName.cpp
103>gtrTracker.cpp
103>gtrUtils.cpp
103>multiTracker.cpp
103>multiTracker_alt.cpp
103>onlineBoosting.cpp
103>onlineMIL.cpp
103>tldDataset.cpp
103>tldDetector.cpp
103>tldEnsembleClassifier.cpp
103>tldModel.cpp
103>tldTracker.cpp
103>tldUtils.cpp
103>D:\opencv3.2\opencv-master\modules\core\include\opencv2/core/types.hpp(1823): warning C4127: Conditional expressions are constants (Compile the source file D:\opencv3.2\opencv_contrib-master\modules\tracking\src\tldUtils.cpp)
103>D:\opencv3.2\opencv-master\modules\core\include\opencv2/core/types.hpp(1823): note: Consider switching 'if constexpr' 语句 (Compile the source file D:\opencv3.2\opencv_contrib-master\modules\tracking\src\tldUtils.cpp)
103>D:\opencv3.2\opencv-master\modules\core\include\opencv2/core/types.hpp(1821): note: Compile the class template member function 'double cv::Rect_<double>::area(void) const' 时 (Compile the source file D:\opencv3.2\opencv_contrib-master\modules\tracking\src\tldUtils.cpp)
103>D:\opencv3.2\opencv_contrib-master\modules\tracking\src\tldUtils.cpp(205): note: See alsoInstantiate the function template that is being compiled'double cv::Rect_<double>::area(void) const'recommend
103>tracker.cpp
103>trackerBoosting.cpp
103>trackerBoostingModel.cpp
103>trackerFeature.cpp
103>trackerFeatureSet.cpp
103>trackerKCF.cpp
103>trackerMIL.cpp
103>trackerMILModel.cpp
103>trackerMedianFlow.cpp
103>trackerModel.cpp
103>trackerSampler.cpp
102>LINK : fatal error LNK1104: can not open file'..\..\lib\Debug\opencv_xphoto330d.lib'
103>trackerSamplerAlgorithm.cpp
103>trackerStateEstimator.cpp
103>unscented_kalman.cpp
103>opencl_kernels_tracking.cpp
102>Has completed the project'opencv_perf_xphoto.vcxproj'-failed。
108>------ Has started all rebuilt: project: opencv_perf_reg, Configuration: Debug x64 ------
108>Building Custom Rule D:/opencv3.2/opencv_contrib-master/modules/reg/CMakeLists.txt
108>CMake does not need to re-run because D:/opencv3.2/build/modules/reg/CMakeFiles/generate.stamp is up-to-date.
108>opencv_perf_reg_pch.cpp
101>cl : Command Line error D8040: An error occurred while creating a child process or communicating with a child process
101>Has completed the project'opencv_perf_cudaimgproc.vcxproj'-failed。
109>------ Has started all rebuilt: project: opencv_perf_stereo, Configuration: Debug x64 ------
103>LINK : fatal error LNK1104: can not open file'..\..\lib\Debug\opencv_plot330d.lib'
109>Building Custom Rule D:/opencv3.2/opencv_contrib-master/modules/stereo/CMakeLists.txt
103>Has completed the project'opencv_tracking.vcxproj'-failed。
110>------ Has started all rebuilt: project: opencv_perf_imgproc, Configuration: Debug x64 ------
105>perf_dis_optflow.cpp
105>perf_deepflow.cpp
105>perf_disflow.cpp
104>perf_main.cpp
105>perf_main.cpp
105>perf_variational_refinement.cpp
109>CMake does not need to re-run because D:/opencv3.2/build/modules/stereo/CMakeFiles/generate.stamp is up-to-date.
104>perf_objdetect.cpp
107>perf_descriptors.cpp
107>perf_detection.cpp
107>perf_main.cpp
107>perf_matching.cpp
110>Building Custom Rule D:/opencv3.2/opencv-master/modules/imgproc/CMakeLists.txt
110>CMake does not need to re-run because D:/opencv3.2/build/modules/imgproc/CMakeFiles/generate.stamp is up-to-date.
109>opencv_perf_stereo_pch.cpp
110>opencv_perf_imgproc_pch.cpp
105>LINK : fatal error LNK1104: can not open file'..\..\lib\Debug\opencv_optflow330d.lib'
105>Has completed the project'opencv_perf_optflow.vcxproj'-failed。
...
166>------ Has started all rebuilt: project: INSTALL, Configuration: Debug x64 ------
166>-- Install configuration: 'Debug'
166>-- Up-to-date: D:/opencv3.2/build/install/include/opencv2/cvconfig.h
166>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(133,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
166>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmErrorLevel
166>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(133,5): error MSB3073: exit /b %1
166>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(133,5): error MSB3073: :cmDone
166>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(133,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
166>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(133,5): error MSB3073: :VCEnd'exited,The code is 1。
166>Has completed the project'INSTALL.vcxproj'-failed。
========== All re-builded: success 26 ,fail 140 个,skip 0  ==========

省略了一些类似的错误。

最佳答案

在没有opencv-contrib的情况下编译opencv3是可以的。 然后使用 Cmake 在 OPENCV_EXTRA_MODULES_PATH 上添加 opencv-contrib,编译时有 6 个项目失败

关于c++ - 为什么用Visual Studio 2017编译openCV3.2会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46276679/

相关文章:

c++ - 如何将RGB888转成Bayer GB/BG/GR格式?

java - 如何在OpenCV中获取由四个点定义的四边形内部的像素?

c++ - 如何计算 OpenCV 中连续非零像素之间的零像素?

c++ - ARM C++ - 如何将 const 成员放入闪存中?

c++ - 在 C++ 中访问网页

c++ - 工厂方法是否适合我的问题?

visual-studio - 如何使用 qmake 创建 vcproj 使其过滤器反射(reflect)目录结构?

c++ - 2d map 上 2 点之间的航点生成器

c# - 如何部署 .Net Windows 应用程序

c# - 是否可以在 Mac OS 上创建 Windows 窗体应用程序?