OpenCV cv::plugin::impl::DynamicLib::libraryLoad load ..opencv_core_parallel_tbb45 =>FAILED
作者:互联网
Opencv调试版报错,
[ INFO:0@7.479] global D:\OpenCV455\opencv-4.5.5\modules\core\src\parallel\registry_parallel.impl.hpp (96) cv::parallel::ParallelBackendRegistry::ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
[ INFO:0@7.479] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_core_parallel_onetbb455_64d.dll => FAILED
[ INFO:0@7.480] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_onetbb455_64d.dll => FAILED
[ INFO:0@7.480] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_core_parallel_tbb455_64d.dll => FAILED
[ INFO:0@7.481] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_tbb455_64d.dll => FAILED
[ INFO:0@7.481] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_core_parallel_openmp455_64d.dll => FAILED
[ INFO:0@7.481] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_openmp455_64d.dll => FAILED
[ INFO:0@8.558] global D:\OpenCV455\opencv-4.5.5\modules\highgui\src\registry.impl.hpp (114) cv::highgui_backend::UIBackendRegistry::UIBackendRegistry UI: Enabled backends(4, sorted by priority): GTK(1000); GTK3(990); GTK2(980); WIN32(970) + BUILTIN(WIN32UI)
[ INFO:0@8.558] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_highgui_gtk455_64.dll => FAILED
[ INFO:0@8.559] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_highgui_gtk455_64.dll => FAILED
[ INFO:0@8.565] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_highgui_gtk3455_64.dll => FAILED
[ INFO:0@8.565] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_highgui_gtk3455_64.dll => FAILED
[ INFO:0@8.565] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load D:\OpenCV455\dev\bin\Debug\opencv_highgui_gtk2455_64.dll => FAILED
[ INFO:0@8.566] global D:\OpenCV455\opencv-4.5.5\modules\core\src\utils\plugin_loader.impl.hpp (67) cv::plugin::impl::DynamicLib::libraryLoad load opencv_highgui_gtk2455_64.dll => FAILED
[ INFO:0@8.567] global D:\OpenCV455\opencv-4.5.5\modules\highgui\src\backend.cpp (90) cv::highgui_backend::createUIBackend UI: using backend: WIN32 (priority=970)
[ INFO:0@8.567] global D:\OpenCV455\opencv-4.5.5\modules\highgui\src\window_w32.cpp (3013) cv::impl::Win32BackendUI::createWindow OpenCV/UI: Creating Win32UI window: Press ESC or Q to exit (1)
我仔细看了一下,我在编译Opencv455时确实没有加入TBB,OPENMP,和gtk这样的库。但是为什么会报错呢?
我搜索到了一个答案,
DLLs for parallel execution - build - OpenCV
这里我就不翻译了,把有用的部分录在下面,
Don’t worry, your OpenCV probably has built-in parallel backend too, you can check it in the cmake configuration output or by printing output of
getBuildInformation()
function.
Dynamic backends are optional.These messages are visible because you are using debug build which has logging level set to INFO or DEBUG, you can omit these messages by setting environment variable
OPENCV_LOG_LEVEL=e
or 2 (OpenCV: cv::utils::logging Namespace Reference 65).There is some info with build instructions and environment variables in the documentation 11 and the original PR 3. Though documentation mostly cover user-provided backends usage, these are different from dynamic backends (yeah, it gets complicated ).
In most cases you’ll want to have built-in parallel backend only, dynamic parallel backends are meant to be used if you want to create a single binary distribution of OpenCV with ability to choose backend dynamically on per-application basis (e.g. enable TBB backend in application which uses TBB too and use MS Concurrency for others). Also it helps to make some 3rdparty dependencies optional, so that you will have ability to use this distribution with minimal dependencies and add functionality or improve performance just by installing extra package.
Please note that built-in backend works as before, it can be TBB or OpenMP, just as in older versions. Furthermore there is a cmake option
PARALLEL_ENABLE_PLUGINS
which can be turnedOFF
to disable dynamic backends completely.Idea is to first check for external implementations in plugins and only then fallback to built-in backend, so the order can not be changed. I understand this can be too verbose and perhaps logging level for these messages could be changed, but on the other hand this is an essence of debug build - provide as much information as possible for troubleshooting (for ex. try to launch basic GStreamer pipeline with GST_DEBUG=5 and you’ll see The Verbose log ).
结论:这些不用处理,不影响结果。
本文结束
标签:load,core,DynamicLib,plugin,OpenCV455,opencv,cv,impl 来源: https://blog.csdn.net/tanmx219/article/details/123585302