VS 2013 Compilation - meta module commit (Bug #4202)


Added by Philip L about 10 years ago. Updated about 10 years ago.


Status:Done Start date:2015-02-17
Priority:Blocker Due date:
Assignee:Maksim Shabunin % Done:

100%

Category:infrastructure
Target version:3.0
Affected version:branch 'master' (3.0-dev) Operating System:Windows
Difficulty:Easy HW Platform:x64
Pull request:https://github.com/Itseez/opencv/pull/3716

Description

this commit introduced new errors.
I cannot compile the master branch anymore with this commit in https://github.com/Itseez/opencv/commit/d509ecd19acce1efcbd8ffee49e3b977840a812b

VS 2013, Win x64 8.1 i think any module is affected by this

I think this is VS 2012+ specific.

i keep getting following errors:

Error    1    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/imgcodecs/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector    60    1    opencv_imgcodecs_object
Error    2    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/ml/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector    60    1    opencv_ml_object
Error    3    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/imgproc/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0    592    1    opencv_imgproc_object
Error    4    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/objdetect/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector    60    1    opencv_objdetect_object
Error    5    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/video/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0    592    1    opencv_video_object
Error    6    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/highgui/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector    60    1    opencv_highgui_object
Error    7    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/videoio/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector    60    1    opencv_videoio_object
Error    13    error C2857: '#include' statement specified with the /YcD:/Tools/face/lib/opencv/modules/photo/src/precomp.hpp command-line option was not found in the source file    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0    592    1    opencv_photo_object


Associated revisions

Revision dac071ed
Added by Alexander Alekhin over 9 years ago

Merge pull request #4202 from PhilLab:patch-5

History

Updated by Maksim Shabunin about 10 years ago

Thank you for report. Please, provide some additional information:
  • cmake parameters and cmake output (attach to bug)
  • What command do you use to run actual build (for ex. cmake --build . --config release -- /maxcpucount:4)?
  • Have you tried to make clean build?

Updated by Philip L about 10 years ago

tested with several cmake configurations, latest try is a clean config so no additional parameters for cmake

since i cannot attach any files after creating a issue i have to do the ouput here:
https://gist.github.com/Dikay900/2aaaa49d35b2e5c01974

i use vs2013 as ide with the integrated building command both release / debug are failing with errors above. maxcpucount is 8 for my system but i dont think this does change anything if setted to one.

in latest try i used a clean folder with default cmake options so yes it was clean.

Updated by Maksim Shabunin about 10 years ago

Analysis:

To support building compound modules, special object library targets were added for each non-compound module. This allowed to use specific compilation parameters for each module included into compound one and to link several modules together easily. These object library targets has been excluded from the all-build, but not from Visual Studio solution-build.

To fix it, cmake property EXCLUDE_FROM_DEFAULT_BUILD should be set to true for each object library target. Pull request with this change (https://github.com/Itseez/opencv/pull/3716) has been submitted.

Other part of the problem is broken precompiled header when building object library targets. This issue affects only compound modules (opencv_contrib_world for now) and is still being analysed.

  • Assignee set to Maksim Shabunin
  • Category set to infrastructure
  • Target version set to 3.0
  • Pull request set to https://github.com/Itseez/opencv/pull/3716
  • Difficulty set to Easy

Updated by Philip L about 10 years ago

Thanks this resolved the problems.

Updated by Philip L about 10 years ago

  • Status changed from New to Done
  • % Done changed from 0 to 100

Also available in: Atom PDF