How to install opencv with tbb enabled using mingw

2019-01-22 23:57发布

问题:

How to install Opencv with TBB enabled?

I tried the following:

1) Downloaded the TBB package.

2) Build using the below command

 mingw32-make compiler=gcc arch=ia32 runtime=mingw default

3) I set the Environmental variable path as "d:\tbb\build\windows_ia32_gcc_mingw_release

3) Now using cmake, I enabled "WITH_TBB" and compiled the opencv.

its throwing the below error.

[ 22%] Built target pch_Generate_opencv_core
Linking CXX shared library ..\..\bin\libopencv_core245.dll
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot fin
d -ltbb
collect2: ld returned 1 exit status
make[2]: *** [bin/libopencv_core245.dll] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

Am I missing anything... Please advice..

回答1:

I had the same problem, the following worked out for removing the tbb linking error:

(Assuming you have already built tbb, as you are already explaining in your question)

  • From CMake, configure one time OpenCV

  • Enable WITH_TBB, be careful not enabling BUILD_TBB: the automatic downloading and building of OpenCV failed miserably for me despite many efforts. If you had previously enabled BUILD_TBB, my suggestion is to restart from the beginnning, clearing cmake cache.

  • Configure a second time OpenCV

  • Now some variables should appear: TBB_INCLUDE_DIRS. For me I set the following values (respectively):

    tbb41_20130314oss/include

  • 2 new variables appears: TBB_STDDEF_PATH and TBB_LIB_DIR. They are assigned some apparently reasonable values. For me, TBB_STDDEF_PATH was correct, but TBB_LIB_DIR was not! So I corrected it to be:

    tbb41_20130314oss/build/windows_ia32_gcc_mingw4.8.1_release

    and I left TBB_STDDEF_PATH as it was:

    tbb41_20130314oss/include/tbb/tbb_stddef.h

  • Configure a third time

  • Finally, click Generate, and you are ready to build mingw32-make -j7

  • Once you start using the opencv library, make sue the tbb DLLs are in your path