# Cmake cross platform Execution Problems?

I've downloaded the opencv code from the github and executed the code using VisualStudio2012. There was no problem. I tested with some sample program execution, it works fine. With the same OpenCv code, i executed that in linux and also with some sample programs, it work's fine.

Now when i again build the same opencv code in the windows, the macros related to linux were checked on, windows related macros were checked out. Thus, resulting in the build failed.

I checked with the CMakeLists.txt, it shows UNIX, while executing in windows. How to get rid of this problem:?

edit retag close merge delete

your screenshot is somewhat useless here (as ppl can't quote you, it cannoot be searched, etc. try to come up with a text representation..

(and it also only shows that the text encoding (line endings and such) differs between the github and the SF version. nothing to worry about , here)

"the macros related to linux were checked on, windows related macros were checked out." -- that's not, what it shows above.

"Thus, resulting in the build failed. " -- you will need to explain better, what you did exactly, and what the resulting error msgs were.

( 2018-04-03 03:26:57 -0500 )edit

i made certain changes in the opencv code and compiled in the linux, it works fine. When Cmake'ing the same code in windows and build using visual studio, the build failed, because of the linux macros were checked in, when running in windows. How to disable linux macros in windows?

( 2018-04-03 03:45:25 -0500 )edit

which macros are you talking about ?

what did you change ?

( 2018-04-03 03:48:38 -0500 )edit

Check here the macros will be defined as #ifdef CAP_VFW or CAP_V4L , etc.

Here, check with the cvCreateCameraCapture function(), TRY_OPEN(),.

In Windows,
#ifdef HAVE_VFW
TRY_OPEN(capture, cvCreateCameraCapture_VFW(index))
#endif
(This to be checked in), but for me,

#if defined HAVE_LIBV4L || defined HAVE_CAMV4L || defined HAVE_CAMV4L2 || defined HAVE_VIDEOIO
TRY_OPEN(capture, cvCreateCameraCapture_V4L(index))
#endif,


(This is check in)

( 2018-04-03 04:54:31 -0500 )edit