openCV 3.0 beta (source) + tbb

asked 2015-04-02 14:42:37 -0500

JohannesZ gravatar image

updated 2015-04-02 14:45:59 -0500

Hi there,

again a new post about compilation from openCV 3.0 master branch and tbb. Here is what I have done so far:

  • machine: win7, 32bits, visual studio 2013 (vc12)
  • set all path variables to openCV (code from master branch) and TBB (precompiled-win-zip)
  • ran cMake and activated with_tbb.
  • After configure, set the path to the relevant files (include-dirs, lib-dir, stddef-path)
  • my openCV folder is located at C:\Code\openCV3, my TBB folder C:\Code\tbb - is this a problem or must the tbb folder be included directly in the openCV folder?

  • added the tbb include and lib files to a property sheet and build openCV as debug (later as release). No errors, everything worked fine.

  • hit "install" including and linking to all files
  • in my test application compilation works, but at execution time, I am getting this failure:

"Failure in a procedure entry point" "?getHostMemRef@_OutputArray@cv@@UBEAAVHostMem@cuda@2@xz was not found in the dll opencv_world300d.dll"

I definitely deactivated WITH_CUDA and WITH_CUFFT in Cmake. So, why do I get this failure and what does "cuda" in this endless string mean? I have no CUDA graphics card and therefore deactivated these options, so I don't understand this problem.

Do you have a tip for me? Thank you so much, Johannes

edit retag flag offensive close merge delete

Comments

Hi,

With this in cmakecache.txt

//Include opencv_world module into the OpenCV build
BUILD_opencv_world:BOOL=ON
//Include NVidia Cuda Runtime support
WITH_CUDA:BOOL=ON
//Flags used by the linker.
CMAKE_EXE_LINKER_FLAGS:STRING= /machine:x64
//The path to TBB headers
TBB_INCLUDE_DIRS:PATH=F:/Lib/tbb43_20150316oss/include
//Full path of TBB library directory
TBB_LIB_DIR:PATH=F:/Lib/tbb43_20150316oss/lib/intel64/vc12
//Include NVidia Cuda Fast Fourier Transform (FFT) library support
WITH_CUFFT:BOOL=ON

and windows 7-64bits VS2013 and GeForce GT 630 OpenCV 3.0.0-dev I can run my application without any error in release configuration (not like you you are in debug) May be you can use depends to check dll path.

LBerger gravatar imageLBerger ( 2015-04-02 15:40:53 -0500 )edit

Hi, thanks for your answer. The problem is that I definitely don't want to use CUDA, so I set all CUDA-related flags to OFF/NO. I really don't understad why I get some kind of "cuda error message" mentioned above.

JohannesZ gravatar imageJohannesZ ( 2015-04-02 16:43:27 -0500 )edit

Hmm, maybe a stupid question but what kind of version is this exactly?? 2.4.X oder a 3.0 beta?

openCV at GitHub

JohannesZ gravatar imageJohannesZ ( 2015-04-02 16:46:34 -0500 )edit

Where is the CMake output? Was the error only this line? Or is there a stack trace, if so, please post it.

boaz001 gravatar imageboaz001 ( 2015-04-02 17:07:05 -0500 )edit
1

I have tried with WITH_CUFFT:BOOL=OFF WITH_CUDA:BOOL=OFF WITH_CUFFT:BOOL=OFF I haven't got any problem. In debug mode you can check all dll loaded in the output window of msvc. I think one dll loaded at run time it's an old one build with cuda.

LBerger gravatar imageLBerger ( 2015-04-03 01:14:19 -0500 )edit

Hi, there was a failure in my path variable, I linked my executable against an older version of openCV. It is working now, thanks a lot!

JohannesZ gravatar imageJohannesZ ( 2015-04-04 08:28:17 -0500 )edit